在CKEditor5中,有一个ImageCaption插件,可将Caption元素添加到Image元素。我想将此完全相同的功能添加到Table元素。
首先,我知道CKEditor5团队拥有此listed as a future feature of the Table plugin,但是,我等不及了,因为我的组织要求即将发布的具有高度自定义架构的应用程序需要这个。
通过查看ImageCaptionEditing Plugin的代码,我可以使以下代码起作用:
首先,我们扩展架构:
schema.extend('caption', {
allowIn: ['table']
});
然后,我们实现了许多向下转换程序和向上转换程序(这基本上是ImageCaptionEditing Plugin的行复制行,以获取基本功能。唯一要更改的地方是所引用的元素是“图像”将其更改为“表格”。
完成所有这些操作后,我们得到一个半功能标题元素,但有很多错误和主要缺点:
tableCell.getChild is not a function
我认为某些错误是由于TableWalker未检查其正在行走的元素是否为tableCell / row / etc所致。我还认为,Table插件中的一些向下转换程序没有检查要转换的元素是tableCell / row / etc。不幸的是,我认为如果不重写整个Table插件,就无法对TableWalker做很多事情,而我非常不愿意这样做。
我意识到这是一个非常复杂的问题,可能很少有人会在这里提供帮助,但是在这一点上任何事情都将得到赞赏。