CKEditor如何处理自定义语义标记?

CKEditor如何处理自定义语义标记?,ckeditor,semantic-markup,Ckeditor,Semantic Markup,我需要一个WYSIWYG编辑器,它可以为任意语义标记定制——目前用XML语法表示。我知道CKEditor是可定制的,但我的语义在HTML中没有对应关系 例如: 位置参考 我希望能够将类似于此的语义附加到任意文本位,并使用可配置的样式集显示它们——每种类型的语义对应一种样式。例如,本例中的位置引用可能以特定字体、绿色和斜体显示(此处建议仅用于说明) 我简要介绍了markdown插件,但它的功能仍然与HTML的功能相匹配 我希望找到一个非常简单的示例,演示编辑器对纯自定义语义的适用性,而不假设它们在

我需要一个WYSIWYG编辑器,它可以为任意语义标记定制——目前用XML语法表示。我知道CKEditor是可定制的,但我的语义在HTML中没有对应关系

例如:

位置参考

我希望能够将类似于此的语义附加到任意文本位,并使用可配置的样式集显示它们——每种类型的语义对应一种样式。例如,本例中的位置引用可能以特定字体、绿色和斜体显示(此处建议仅用于说明)

我简要介绍了markdown插件,但它的功能仍然与HTML的功能相匹配

我希望找到一个非常简单的示例,演示编辑器对纯自定义语义的适用性,而不假设它们在HTML/XHTML中有对应关系


这是可能的吗?

每个自定义标记都有一个语义方面(上面示例中的位置引用和ID)和一个表示方面(我希望如何看到标记引用的描述)。如果将自定义标记替换为特定类的or,那么它可以表示这两个方面,并且应该为诸如CKEditor之类的HTML编辑器所接受——目前尚未证实

例如,考虑自定义XML标记的另一个示例,它具有几个属性值:

<Anom Mode='Intralinear' Posn='T' Ref='^'> some text </Anom>
一些文本
可以按如下方式进行转换,以使编辑器能够接受它(其中“xx”是一些唯一的专有名称,以避免名称冲突):

一些文本
除了捕获属性值,我认为这应该允许编辑器根据不同的样式显示不同的标记文本,使用一些带有选择器的CSS,如span.xx-anom


CKeditor已经有了用于markdown和BBCode的第三方插件,这些插件演示了如何使用HTML作为临时表示来编辑它们的语法。对于自定义XML标记也可以这样做。

这确实是推荐的解决方案。通过转换输入和输出,向CKEditor提供它可以理解的HTML(无需重写所有特性以适应自定义标记),通常是解决许多问题的方法,因为它可以分离关注点。CKEditor可以专注于编辑语义HTML,而外部逻辑保持在转换程序代码的外部。稍后,您可能会决定需要自定义如何编辑转换的内容(例如,什么可以嵌套在哪里)。这就是事情变得更加复杂的地方,因为你无法避免(…)(…)编写自己的插件。还有一些技术限制(包括浏览器和CKEditor),这些插件无法合理地克服。因此,根据想要实现的内容控制级别,CKEditor 4可能无法处理这样的任务。幸运的是,通过引入新的数据模型,我们将极大地扩展这种可能性。感谢您的支持。我不太明白我可能会遇到什么限制。编辑器只需要理解HTML,只需保留任何语义信息的副本。当新的数据模型发布时,插件会有相同的接口吗?你是指构建插件的API还是现有插件的UI?事实上,两者都会改变。尽管名称不同,但CKEditor 5是一个新项目。我指的是您之前的评论:…“结果可能是CKEditor 4可能无法处理这样的任务”,因为我不确定您的意思。我的筑巢规则相对简单。但是,我还需要自定义工具栏,以包括用于添加标记的相应按钮(以HTML形式)。如果有一个简单的例子可以为几个自定义标记实例(甚至可能是这里引用的两个实例)实现所有这些,那就太好了,因为JS是迄今为止我从未真正使用过的少数语言之一。
<span class="xx-anom" data-xx-mode="Intralinear" data-xx-posn="T" data-xx-ref="^"> some text </span>