Draftail Shortcode实体,为Draftail添加类似链接的短代码。
项目描述
Wagtail Shortcode
Wagtail Shortcode添加了一个自定义的Draftail实体,提供自定义链接类型(“短代码”),使您能够以类似正常链接的方式分配值,并决定它们在页面上的渲染方式。
安装
python -m pip install wagtail-shortcode
- ...
将'wagtail_shortcode'
添加到INSTALLED_APPS
。
注册一个LinkHandler,以控制新链接类型在前端(|richtext
过滤器)的渲染方式。
LinkHandlers必须在应用目录下的wagtail_hooks.py文件中注册,并使用与SHORTCODE_ANCHOR_TARGET_IDENTIFIER
匹配的标识符,例如
# ./utils_app/wwgtail_hooks.py
from django.utils.html import escape
from wagtail import hooks
from wagtail.rich_text import LinkHandler
from wagtail_shortcode.handlers import SHORTCODE_ANCHOR_TARGET_IDENTIFIER
class CustomShortcodeLinkHandler(LinkHandler):
identifier = SHORTCODE_ANCHOR_TARGET_IDENTIFIER
@classmethod
def expand_db_attributes(cls, attrs):
href = attrs["shortcode"]
# Do something clever
return '<a href="%s">' % escape(href)
@hooks.register("register_rich_text_features")
def register_shortcode_link(features):
features.register_link_type(CustomShortcodeLinkHandler)
将shortcode
添加到任何已覆盖默认功能列表的富文本字段的features
参数中
class Header(models.Model):
content = RichTextField(
features=["shortcode", "h2", "h3", "bold", "italic", "link"]
)
配置
更新窗口提示的帮助文本
在编辑器中添加短代码时,将弹出一个窗口提示,您可以通过在项目的设置文件中提供 SHORTCODE_HELP_TEXT
的值来自定义此提示框中的文本。这可以帮助编辑了解您自定义的 LinkHandler 的预期行为。
SHORTCODE_HELP_TEXT="输入短代码值"
窗口提示函数是 JavaScript 的一种方法,它支持使用特殊字符进行基本的文本格式化,因此如果需要,可以使用 \n
包含换行符。
贡献
查看文档.