Move admin-specific bits of rich text setup from wagtail.core.wagtail_hooks into wagtail.admin.wagtail_hooks

pull/4079/merge
Matt Westcott 2017-12-08 16:51:55 +00:00
rodzic 0f42c7af9e
commit 670bce0c4d
2 zmienionych plików z 30 dodań i 30 usunięć

Wyświetl plik

@ -6,12 +6,15 @@ from wagtail.admin.menu import MenuItem, SubmenuMenuItem, settings_menu
from wagtail.admin.navigation import get_explorable_root_page
from wagtail.admin.rich_text import (
HalloFormatPlugin, HalloHeadingPlugin, HalloListPlugin, HalloPlugin)
from wagtail.admin.rich_text.converters.editor_html import LinkTypeRule, WhitelistRule
from wagtail.admin.search import SearchArea
from wagtail.admin.utils import user_has_any_page_permission
from wagtail.admin.viewsets import viewsets
from wagtail.admin.widgets import Button, ButtonWithDropdownFromHook, PageListingButton
from wagtail.core import hooks
from wagtail.core.permissions import collection_permission_policy
from wagtail.core.rich_text.pages import PageLinkHandler
from wagtail.core.whitelist import allow_without_attributes, attribute_rule, check_url
class ExplorerMenuItem(MenuItem):
@ -189,6 +192,9 @@ def register_core_features(features):
order=45,
)
)
features.register_converter_rule('editorhtml', 'hr', [
WhitelistRule('hr', allow_without_attributes)
])
features.register_editor_plugin(
'hallo', 'link',
@ -197,24 +203,47 @@ def register_core_features(features):
js=['wagtailadmin/js/hallo-plugins/hallo-wagtaillink.js'],
)
)
features.register_converter_rule('editorhtml', 'link', [
WhitelistRule('a', attribute_rule({'href': check_url})),
LinkTypeRule('page', PageLinkHandler),
])
features.register_editor_plugin(
'hallo', 'bold', HalloFormatPlugin(format_name='bold')
)
features.register_converter_rule('editorhtml', 'bold', [
WhitelistRule('b', allow_without_attributes),
WhitelistRule('strong', allow_without_attributes),
])
features.register_editor_plugin(
'hallo', 'italic', HalloFormatPlugin(format_name='italic')
)
features.register_converter_rule('editorhtml', 'italic', [
WhitelistRule('i', allow_without_attributes),
WhitelistRule('em', allow_without_attributes),
])
for element in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']:
features.register_editor_plugin(
'hallo', element, HalloHeadingPlugin(element=element)
)
features.register_converter_rule('editorhtml', element, [
WhitelistRule(element, allow_without_attributes)
])
features.register_editor_plugin(
'hallo', 'ol', HalloListPlugin(list_type='ordered')
)
features.register_converter_rule('editorhtml', 'ol', [
WhitelistRule('ol', allow_without_attributes),
WhitelistRule('li', allow_without_attributes),
])
features.register_editor_plugin(
'hallo', 'ul', HalloListPlugin(list_type='unordered')
)
features.register_converter_rule('editorhtml', 'ul', [
WhitelistRule('ul', allow_without_attributes),
WhitelistRule('li', allow_without_attributes),
])

Wyświetl plik

@ -2,11 +2,9 @@ from django.conf import settings
from django.contrib.auth.views import redirect_to_login
from django.urls import reverse
from wagtail.admin.rich_text.converters.editor_html import LinkTypeRule, WhitelistRule
from wagtail.core import hooks
from wagtail.core.models import PageViewRestriction
from wagtail.core.rich_text.pages import PageLinkHandler, page_linktype_handler
from wagtail.core.whitelist import allow_without_attributes, attribute_rule, check_url
from wagtail.core.rich_text.pages import page_linktype_handler
def require_wagtail_login(next):
@ -39,43 +37,16 @@ def check_view_restrictions(page, request, serve_args, serve_kwargs):
@hooks.register('register_rich_text_features')
def register_core_features(features):
features.default_features.append('hr')
features.register_converter_rule('editorhtml', 'hr', [
WhitelistRule('hr', allow_without_attributes)
])
features.default_features.append('link')
features.register_converter_rule('editorhtml', 'link', [
WhitelistRule('a', attribute_rule({'href': check_url})),
LinkTypeRule('page', PageLinkHandler),
])
features.register_link_type('page', page_linktype_handler)
features.default_features.append('bold')
features.register_converter_rule('editorhtml', 'bold', [
WhitelistRule('b', allow_without_attributes),
WhitelistRule('strong', allow_without_attributes),
])
features.default_features.append('italic')
features.register_converter_rule('editorhtml', 'italic', [
WhitelistRule('i', allow_without_attributes),
WhitelistRule('em', allow_without_attributes),
])
features.default_features.extend(['h2', 'h3', 'h4'])
for element in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']:
features.register_converter_rule('editorhtml', element, [
WhitelistRule(element, allow_without_attributes)
])
features.default_features.append('ol')
features.register_converter_rule('editorhtml', 'ol', [
WhitelistRule('ol', allow_without_attributes),
WhitelistRule('li', allow_without_attributes),
])
features.default_features.append('ul')
features.register_converter_rule('editorhtml', 'ul', [
WhitelistRule('ul', allow_without_attributes),
WhitelistRule('li', allow_without_attributes),
])