CKEditor 5 - 允许跨度元素和属性

CKEditor 5 - allow span elements and attributes

我正在尝试使用 CKEditor 5 Framework 制作自定义插件。但是我无法插入(通过 editor.setData())段落和其他元素(如 span)的任何属性。有什么办法可以实现吗?

谢谢!

CKEditor 5 实现了一个自定义数据模型,您可以在 Architecture introduction guide.

中阅读更多内容

自定义数据模型的存在意味着编辑器需要知道如何将该模型转换为视图结构 (DOM) 以进行编辑。此外,由于编辑器通常输出 HTML(或结构上的 "compatible" 格式,如 Markdown、BBCode 等),需要进行类似的转换才能从编辑器中获取数据。最后,编辑器需要能够将视图转换为模型,以便您能够将数据加载到编辑器中。

旁注:您可能还想将模型直接保存到数据库中,这样可以避免将视图转换为模型(setData()),但尽管可能意味着编辑器需要知道如何将模型转换为视图进行编辑,将视图转换为模型进行粘贴。

这一切意味着什么?这意味着除非现有的编辑器功能可以选择特定内容,否则它将被删除。它不会在数据加载时从视图转换为模型,因此会被遗忘。

因此,一切都与转换器有关。您需要教您的编辑器如何理解 HTML 以及如何呈现 HTML。实际上,您还需要教它如何编辑(此时)模型的这些特定部分(通过配置模式和实施适当的 UI)。

那么,如何编写转换器和配置架构?

嗯,这是目前的一个问题,因为现在(截至 2017 年 12 月)我们正处于 CKEditor 5 engine refactoring. The architecture we have is great but the APIs proved to be too hard to use, so we're now improving them which means that whatever I'd write here would be invalid next month. So, instead, I recommend going through the source of the CKEditor 5 packages (e.g. see the plugins in the basic styles package)的中间。