向表元素添加标题(CKEditor5)

时间:2019-07-11 15:59:19

标签: javascript ckeditor5

在CKEditor5中,有一个ImageCaption插件,可将Caption元素添加到Image元素。我想将此完全相同的功能添加到Table元素。

首先,我知道CKEditor5团队拥有此listed as a future feature of the Table plugin,但是,我等不及了,因为我的组织要求即将发布的具有高度自定义架构的应用程序需要这个。

通过查看ImageCaptionEditing Plugin的代码,我可以使以下代码起作用:

  • 标题元素是在数据模型的表元素内创建的
  • 当选择了表窗口小部件时,figcaption元素出现,可以将其键入
  • 如果在表格模糊时未向figcaption元素添加任何文本,则figcaption元素将折叠

首先,我们扩展架构:

schema.extend('caption', {
      allowIn: ['table']
    });

然后,我们实现了许多向下转换程序和向上转换程序(这基本上是ImageCaptionEditing Plugin的行复制行,以获取基本功能。唯一要更改的地方是所引用的元素是“图像”将其更改为“表格”。

完成所有这些操作后,我们得到一个半功能标题元素,但有很多错误和主要缺点:

  • 仅当选择了整个表格小部件时,标题才会出现
  • 输入标题会引发错误tableCell.getChild is not a function
  • 插入行/列或执行大多数表命令会导致tableCell元素出现在标题元素内

我认为某些错误是由于TableWalker未检查其正在行走的元素是否为tableCell / row / etc所致。我还认为,Table插件中的一些向下转换程序没有检查要转换的元素是tableCell / row / etc。不幸的是,我认为如果不重写整个Table插件,就无法对TableWalker做很多事情,而我非常不愿意这样做。

我意识到这是一个非常复杂的问题,可能很少有人会在这里提供帮助,但是在这一点上任何事情都将得到赞赏。

0 个答案:

没有答案