Wagtail RichTextBlock расширяется, чтобы выбрать цвет

Я пытаюсь реализовать вариант выбора цвета в трясогузке RichTextBlock так что я могу выбрать любой цвет для выделенного текста.

Это мое wagtail_hooks.py файл:

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

    # Step 1
    feature_name = "Text Color Picker"
    type_ = "TEXTCOLOR"
    tag = "span"

    # Step 2
    control = {
        "type": type_,
        "label": "color",
        "description": "Color Text",
        # "style": {
        #     "display": "block",
        #     "text-align": "center",
        # },
    }

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

    # Step 4
    db_conversion = {
        "from_database_format": {tag: InlineStyleElementHandler(type_)},
        "to_database_format": {
            "style_map": {
                type_: {
                    "element": tag,
                    "props": {
                        "style": "color:colorcode"
                    }
                }
            }
        }
    }

    # Step 5
    features.register_converter_rule("contentstate", feature_name, db_conversion)

    # Step 6, This is optional.
    features.default_features.append(feature_name)

Кто-нибудь может мне с этим помочь? Я просто старался изо всех сил, чтобы добиться этого, но безуспешно.

2 ответа

Решение

Не могли бы вы добавить charfield или charblock к вашей модели или streamblock, где вы вводите шестнадцатеричное значение, а в шаблоне вы читаете значение поля и устанавливаете для него цвет текста?

Для этой функции в Wagtail открыт билет здесь . Если вам нужен текстовый блок выбора цвета, вы можете использовать этот пакет на данный момент, пока он не станет основной функцией. Это создаст текстовое поле с палитрой цвета и проверками. Вы можете сделать это следующим образом:

      from wagtail_color_panel.blocks import NativeColorBlock

class YourBlock(StructBlock):
    textColor = NativeColorBlock(help_text="Provide a text color")
Другие вопросы по тегам