在 Wagtail 中扩展富文本编辑器后文本对齐的错误

时间:2021-04-19 13:52:56

标签: wagtail wagtail-streamfield

想知道是否有人可以在这里发现我的错误:

我在富文本编辑器中添加了居中对齐和右对齐按钮。两者都工作正常。

但是,使用 align-right 时,它会在编辑器和页面上向右显示,但是当我再次打开编辑器时,右对齐的文本现在居中。如果我点击该文本,中心按钮会显示为选中状态,而不是右对齐按钮 - 如果我在不触摸内容的情况下按下保存,它现在会保存为居中文本。

非常感谢任何帮助。

"""Richtext hooks."""
import wagtail.admin.rich_text.editors.draftail.features as draftail_features
from wagtail.admin.rich_text.converters.html_to_contentstate import (
    InlineStyleElementHandler
)
from wagtail.core import hooks

@hooks.register("register_rich_text_features")
def register_centertext_feature(features):
    """Creates centered text in our richtext editor and page."""

    feature_name = "center"
    type_ = "CENTERTEXT"
    tag = "div"

    control = {
        "type": type_,
        "description": "Align Centre",
        "label": ">☰<",
        "style": {
            "display": "block",
            "text-align": "center",
        },
    }

    features.register_editor_plugin(
        "draftail", feature_name, draftail_features.InlineStyleFeature(control)
    )

    db_conversion = {
        "from_database_format": {tag: InlineStyleElementHandler(type_)},
        "to_database_format": {
            "style_map": {
                type_: {
                    "element": tag,
                    "props": {
                        "class": "d-block text-center"
                    }
                }
            }
        }
    }

    features.register_converter_rule("contentstate", feature_name, db_conversion)
    features.default_features.append(feature_name)

@hooks.register("register_rich_text_features")
def register_centertext_feature(features):
    """Creates right aligned text in our richtext editor and page."""

    feature_name = "right"
    type_ = "RIGHTTEXT"
    tag = "div"

    control = {
        "type": type_,
        "description": "Align Right",
        "label": ">☰",
        "style": {
            "display": "block",
            "text-align": "right",
        },
    }

    features.register_editor_plugin(
        "draftail", feature_name, draftail_features.InlineStyleFeature(control)
    )

    db_conversion = {
        "from_database_format": {tag: InlineStyleElementHandler(type_)},
        "to_database_format": {
            "style_map": {
                type_: {
                    "element": tag,
                    "props": {
                        "class": "d-block text-right"
                    }
                }
            }
        }
    }

    features.register_converter_rule("contentstate", feature_name, db_conversion)
    features.default_features.append(feature_name)

0 个答案:

没有答案
相关问题