【发布时间】:2021-01-05 13:18:41
【问题描述】:
我已经注册了以下钩子:
from wagtail.core import hooks
from wagtail.admin.rich_text.converters.html_to_contentstate import InlineStyleElementHandler
import wagtail.admin.rich_text.editors.draftail.features as draftail_features
from django.templatetags.static import static
from django.utils.html import format_html
@hooks.register('insert_editor_css')
def editor_css():
return format_html(
'<link rel="stylesheet" href="{}">',
static('css/styles.css')
)
@hooks.register('register_rich_text_features')
def register_smallcaption_feature(features):
feature_name = 'dropcap'
type_ = 'DROPCAP'
control = {
'type': type_,
'label': 'Drop',
'description': 'Dropcap',
'element': 'p class="has-dropcap"',
}
features.register_editor_plugin(
'draftail',
feature_name,
draftail_features.InlineStyleFeature(control)
)
db_conversion = {
'from_database_format': {
'p[class="has-dropcap"]':
InlineStyleElementHandler(type_)
},
'to_database_format': {
'style_map': {type_: 'p class="has-dropcap"'}
},
}
features.register_converter_rule(
'contentstate',
feature_name,
db_conversion
)
我在 Draftail 编辑器中选择一个文本块并像这样应用 dropcap 功能,
我选择的文本块已按照已发布页面的预期包含在带有has-dropcap 类的段落标记中。
但内联编辑器不会像我在控件变量 'element': 'p class="has-dropcap"', 中要求的那样,使用带有 has-dropcap 类的段落标记来包装文本块
我做错了什么,如何在 Wagtail 的 Draftail 编辑器中使用所选功能向文本添加元素和类?
【问题讨论】: