在CKEditor 5中呈现HTML页面

8
问题陈述: 我最近从CKEditor 4更新到CKEditor 5,遇到了渲染Html页面的问题。我发现当我向CKEditor 5提供HTML内容时,它会删除所有样式并呈现为普通HTML。
我查看了一些不同的问题和问题,发现CKEditor 5实现了一个自定义数据模型。这意味着加载到编辑器中的每个内容都需要转换为该模型,然后再呈现回视图。
*以下是在ckeditor5中重现问题的预览链接:*
CKEditor 4: https://codepen.io/bhuvavaibhav2rs/pen/rNBxbwG CKEditor 5: https://codepen.io/bhuvavaibhav2rs/pen/yLBerKb 在CKEditor 4中,给出以下配置后,它按预期工作:
CKEDITOR.replace('editor1', {
        fullPage: true,
        allowedContent: true
      });

在CKEditor 5中,我们无法找到与上述配置相同的内容。

enter image description here


谢谢你的回答,@Peter。你能否指导我使用哪些插件来支持我的用例? - Vaibhav Bhuva
2
更新的答案。不幸的是,如果你想要在v4中进行描述的HTML编辑,你必须留在v4上。您需要这个问题更多的帮助吗?请告诉我或者将我的答案标记为已接受。谢谢。 - Peter
1个回答

3
由于v5中的架构变化,您无法像使用CKEditor 5编辑器的v4一样编辑HTML。请继续阅读以了解原因。
经过一些不成功的尝试后,我深入研究了源代码库,并发现了这个项目贡献者的问题评论
“嗨,无法插入任意HTML到CKE5中。原因有几个。”
此外,一个链接问题解释了v5 API更改的原因:
到目前为止,我一直在谈论 CKEditor 4。那么CKEditor 5有什么不同呢?CKEditor 4使用DOM作为模型。在加载数据时,HTML会被处理(即过滤、规范化和转义),但最终还是进入了DOM。CKEditor 5具有自定义数据模型。当您将HTML加载到编辑器中时,它会被解析,然后编辑器中之前初始化的功能会尝试从HTML中提取它们理解的部分。这称为“转换”。由于转换,内容被加载到自定义数据结构中。当需要将内容渲染回DOM时(用于编辑或数据检索),将执行反向过程。这意味着,如果没有处理某个HTML标签/属性/样式/任何内容的功能,则编辑器将自动删除它。
是否有支持HTML编辑的CKEditor 5插件?
不,社区建议使用CKEditor 4
参考:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接