From a05ada6a44168933f54a052fb3c6e0af3efb49d1 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Sat, 15 Jul 2017 09:29:33 +0200 Subject: [PATCH] Define p / h1-h6 as rich text features --- wagtail/wagtailadmin/rich_text.py | 11 +++++++++++ wagtail/wagtailadmin/wagtail_hooks.py | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/wagtail/wagtailadmin/rich_text.py b/wagtail/wagtailadmin/rich_text.py index 1bd978d6af..e0e22ea724 100644 --- a/wagtail/wagtailadmin/rich_text.py +++ b/wagtail/wagtailadmin/rich_text.py @@ -41,6 +41,17 @@ class HalloFormatPlugin(HalloPlugin): plugins[self.name]['formattings'][self.format_name] = True +class HalloHeadingPlugin(HalloPlugin): + def __init__(self, **kwargs): + kwargs.setdefault('name', 'halloheadings') + self.element = kwargs.pop('element') + super(HalloHeadingPlugin, self).__init__(**kwargs) + + def construct_plugins_list(self, plugins): + plugins.setdefault(self.name, {'formatBlocks': []}) + plugins[self.name]['formatBlocks'].append(self.element) + + # Plugins which are always imported, and cannot be enabled/disabled via 'features' CORE_HALLO_PLUGINS = [ HalloPlugin(name='halloreundo'), diff --git a/wagtail/wagtailadmin/wagtail_hooks.py b/wagtail/wagtailadmin/wagtail_hooks.py index 01bea8c2f9..94185079a7 100644 --- a/wagtail/wagtailadmin/wagtail_hooks.py +++ b/wagtail/wagtailadmin/wagtail_hooks.py @@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _ from wagtail.wagtailadmin.menu import MenuItem, SubmenuMenuItem, settings_menu from wagtail.wagtailadmin.navigation import get_explorable_root_page -from wagtail.wagtailadmin.rich_text import HalloFormatPlugin, HalloPlugin +from wagtail.wagtailadmin.rich_text import HalloFormatPlugin, HalloHeadingPlugin, HalloPlugin from wagtail.wagtailadmin.search import SearchArea from wagtail.wagtailadmin.utils import user_has_any_page_permission from wagtail.wagtailadmin.viewsets import viewsets @@ -210,3 +210,9 @@ def register_core_features(features): 'hallo', 'italic', HalloFormatPlugin(format_name='italic') ) features.default_features.append('italic') + + for element in ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6']: + features.register_editor_plugin( + 'hallo', element, HalloHeadingPlugin(element=element) + ) + features.default_features.extend(['p', 'h2', 'h3', 'h4'])