我需要开发一个 CKEditor 5 插件,当列表项添加了类 x 时,它会将类 y 添加到包装器或元素。

所以基本上在模型中我期待以下内容:-

<paragraph htmlLiAttributes="{classes:['x']}" listType="bulleted">item 1</paragraph>

在沮丧发生之前我需要做的就是将其更改为以下内容

<paragraph htmlAttibutes="{classes:['y']}" htmlLiAttributes="{classes:['x']}" listType="bulleted">item 1</paragraph>

我试图在 dataDowncast 上添加一个调度程序以监视 htmlAttibutes,然后检查 htmlLiAttibutes 以检查类 x 是否存在,然后将类 y 添加到 htmlAttibutes。

我已经尝试创建一个调度程序来监视 htmlAttibutes,但这只会在属性存在时被调用。

我也试过观察 listType 属性,但后来我一直无法找到一种检查现有属性的好方法,而不必遍历 data.item 上的所有项目并添加附加属性。

我觉得在这个阶段我来不及了。


我一直在查看其他一些示例,发现#70888177的答案或多或少是我需要做的。然而下面的``` if (!conversionApi.consumable.consume(data.item, 'insert')) { return; } ``` 永远不会返回 true,所以它永远不会运行其余的过程。我确实在其他一些示例中看到 consume() 只是运行并且从未检查过输出。