CKEditor5:防止在输入时将属性复制到新段落

CKEditor5: prevent attributes being copied to new paragraph on enter

我正在做一个允许用户将内容注入可编辑的项目。我在段落中添加了一个 contentid 属性,这样我就可以跟踪添加的内容和添加的位置。

<p contentid="1">some default content</p> 

当在该段内按下回车键时,输入的下一段也具有 contentid="1" 属性。我希望新段落没有 contentid 属性。

我正在尝试确定 how/where 实现此目标的最佳方法。我一直在听回车键和 schema.addChildCheck 但没有取得太大进展。

这似乎可以解决问题。也许有点 hacky.. 但意识到选择总是在新创建的元素中。所以我不需要在回调中找到对它的引用,我可以从当前选择中获取新段落。

editor.commands.get( 'enter' ).on( 'afterExecute', () => {
  const block = first( editor.model.document.selection.getSelectedBlocks() );
  editor.model.change( writer => {
    writer.removeAttribute( 'contentid', block );
  });
});