Wagtail/Hallo.js - 添加插件但未保存已修改的内容

F L*_*bbé 3 javascript django hallo-js wagtail

我正在运行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>
        """
    )
Run Code Online (Sandbox Code Playgroud)

gas*_*man 5

根据设计,Wagtail只允许HTML标签和属性的子集,并去除任何不在其白名单上的内容.这样做有几个原因:它阻止编辑者插入恶意内容(如<script>标签),并鼓励网站开发人员将内容和演示文稿分开.(您不应该在富文本内容中包含格式化信息,例如左/右/中心对齐 - 应该在模板和CSS中定义.)

您可以自定义HTML中使用白名单规则construct_whitelister_element_rules钩-不过,我会鼓励你重新考虑你是否真的需要重载有这么多的功能丰富的文本编辑器,或是否有达到你想要的东西更结构化的方式(如StreamField).