Magnolia 5.5.6 Stories App 自定义 CKEditor 面板

Magnolia 5.5.6 Stories App Custom CKEditor Panel

Magnolia 团队写道 (DevelopingCustomBlocks) RichTextFieldDefinition 不适用于块。

我希望将来使用内容编辑器而不是页面。是否可以扩展编辑器面板 为 ckeditor 使用(自定义)插件(我创建的插件是为了与 RichTextField 一起使用)?如果是的话,你能给我一个如何完成的提示吗?

可以,甚至可以使用标准RichTextField。 然而,在您开始扩展它之前,请确保您了解新编辑器背后的想法、它的工作原理、它存储的数据结构以及稍后如何操作这些数据,以免给自己挖洞,而自定义扩展很难逃脱。

整个编辑器旨在流畅地进行编辑,并且操作起来非常简单,提供最大的自由度。编辑器使用块的概念。每次点击 enter 都会产生新的文本块。 Magnolia 还提供了其他类型的 OOTB 块。每个不同类型的块都是单独存储的,它的渲染可以由模板控制。例如。每个文本块成为段落或 div in html,具体取决于您的选择。对于其他块,它们可能会产生其他类型的元素。这是你需要变得小心的地方。如果你扩展 CK 编辑器,或者开始使用 default/old RichTextField,你将突然以已经包含 html 的块结束,因此无法预测在这样的块之后输出可能是什么样子由您的模板处理,结果 html 是否有效或格式正确。在每个块中得到的 html 越少 "baked in",之后的模板就越容易。

至于在文本块中添加额外的插件,您可以修改编辑器的config.js,至于添加RichTextField您可以创建提供该字段的块。但是,请记住,首先你 运行 有引入潜在危险 html 的风险,而第二个则有同样的风险烘烤危险 html 并且最重要的是破坏编辑器体验,因为 RTF 将不支持可用于其他块的相同键盘快捷键。