Gom*_*omi 6 javascript ckeditor ecmascript-6 ckeditor5
我正在尝试使用 CKEditor 5 Framework 制作自定义插件。但是,我无法插入(通过editor.setData())段落和其他元素(如跨度)的任何属性。有什么方法可以实现吗?
谢谢!
CKEditor 5 实现了一个自定义数据模型,您可以在架构介绍指南中阅读有关该模型的更多信息。
自定义数据模型的存在意味着编辑器需要知道如何将该模型转换为视图结构(DOM)以进行编辑。此外,由于编辑器通常输出 HTML(或结构上“兼容”的格式,如 Markdown、BBCode 等),因此需要进行类似的转换才能从编辑器获取数据。最后,编辑器需要能够将视图转换为模型,以便您能够将数据加载到编辑器中。
旁注:您可能还想将模型直接保存到数据库中,这将使您免于将视图转换为模型(在setData()),但虽然可能,但这仍然意味着编辑器需要知道如何将模型转换为视图用于编辑和模型视图用于粘贴。
这是什么意思呢?这意味着除非现有的编辑器功能可以选择特定的内容,否则它将被删除。它根本不会在数据加载时从视图转换为模型,因此会被遗忘。
因此,一切都与转换器有关。您需要教您的编辑器如何理解 HTML 以及如何呈现 HTML。实际上,您还需要教它如何编辑模型的这些特定部分(此时)(通过配置架构并实现适当的 UI)。
那么,如何编写转换器和配置模式呢?
嗯,这是目前的一个问题,因为现在(截至 2017 年 12 月)我们正在进行CKEditor 5 引擎重构。我们拥有的架构很棒,但事实证明 API 太难使用,所以我们现在正在改进它们,这意味着我在这里写的任何内容下个月都将无效。因此,我建议查看CKEditor 5 包的源代码(例如,查看基本样式包中的插件)。