3

我在 Wagtail 1.3.1、Django 1.7.11 上运行。

我已经激活了 hallohtml 和 hallojustify 插件,它们出现在工具栏中(没有图标,但按钮在这里)。

可以使用按钮,并且可以在 textarea 中看到修改(我的意思是,例如,我可以将一个字段居中并看到它)。

当我发布页面时,不会保存由 hallojustify 或 hallohtml 所做的修改,而我仍然可以使用粗体/斜体按钮并保存内容。看起来html被清理了......

我应该错过一些东西,但是...

@hooks.register('insert_editor_js')
def editor_js():
js_files = [
]
js_includes = format_html_join('\n', '',
((settings.STATIC_URL, filename) for filename in js_files)
)

return js_includes + format_html(
        """
        <script>
          registerHalloPlugin('hallojustify');
          registerHalloPlugin('hallohtml');
        </script>
        """
    )
4

1 回答 1

5

按照设计,Wagtail 只允许 HTML 标记和属性的子集,并剔除不在其白名单上的任何内容。这样做有几个原因:它可以防止编辑者插入恶意内容(例如<script>标签),并鼓励网站开发人员将内容和呈现分开。(您实际上不应该在富文本内容中包含格式信息,例如左/右/居中对齐 - 这应该在您的模板和 CSS 中定义。)

您可以使用钩子自定义 HTML 白名单规则construct_whitelister_element_rules- 但是,我建议您重新考虑是否真的需要为富文本编辑器重载这么多功能,或者是否有更结构化的方式来实现您想要的(例如流场)。

于 2016-06-29T11:08:39.800 回答