鹡鸰。能够在编辑器中编辑 html

Wagtail. Ability to edit html within editor

我的编辑希望能够在编辑器中编辑原始 html。 例如,我们可以有简单的列表标记:

<ul>
   <li>Some text<li>
</ul>

或使用自定义 类 和事件标签:

<ul>
   <li class="my_class">Some text
       <span class="special">Some additional info</span>
   <li>
</ul>

以此类推

我知道内置的 Draftail 不支持 html 编辑。 但是使用第三方编辑器有问题:

失去与系统的集成。例如,我不能像 draftail 一样放置图像。或者,预览模式无法处理第三方编辑器的所有功能。

所以,也许有人对这种情况有可行的解决方案。 我考虑过使用特殊的 StreamField 面板,但它似乎是块的开销。不喜欢这种有很多块但差异很小的想法

Wagtail 不支持原始 HTML 在页面编辑器中开箱即用的编辑。 philosophy (zen) of Wagtail 是为了帮助编辑和开发人员 'wear the right hat' 在 Wagtail 中工作。

HTML 编辑通常最好提供给开发人员,他们对可访问性、安全性和工具的好处(如 git)所需的内容有预期的了解。

但是,如果 HTML 编辑是必须的,您可能需要为此目的构建自己的编辑器字段,或者找到适合 HTML 标记的合适包,例如 django-markupfield. Adding image/snippet/page chooser functionality however will have to be built for whatever you end up using. You may also want to look at the Wagtail markdown package 作为 HTML 的替代或起点,它允许链接到 pages/images.

的语法

Wagtail 允许您使用任何类型的Django field or widget with the FieldPanel

请确保在实施此功能时考虑所有风险,例如可访问性 HTML(例如标题级别)、安全性(不允许某些标签,例如脚本标签)、格式错误 HTML 泄漏到呈现的模板,当然还有最终用户体验。

最后我自己解决了 简单重写 wagtail 的 Html DbWhiteLister 和 HtmlConverter 中的一些方法。 这使我有机会允许具有任何属性的任何标签。

https://github.com/Chenger1/wagtailtinymce.-Full-Rich-Text-Editor