CKEditor 5将段落模型转换为具有内部跨度的Div



我目前正在阅读CKEditor 5文档,并试图了解如何实现以下转换:

对于每个段落模型,将视图转换为具有内部跨度的div。

以下内容让我走了一半。。。

editor.conversion.elementToElement({ model: 'paragraph', view: 'div', converterPriority: 'high' })

现在,所有段落模型都转换为div(而不是<p>元素(

但是,我如何添加额外的跨度元素,使每个段落模型呈现为:

<div><span>Text here...</span></div>

我是否必须切换到更专业的上行、数据下行和编辑下行转换器?或者这仍然可以通过editor.conversion.elementToElement处理吗?

更新:

我尝试了以下方法-非常接近:

editor.conversion.for('downcast').elementToElement({
model: 'paragraph',
view: (modelElement, conversionApi) => {
const { writer } = conversionApi
const divElement = writer.createContainerElement('div')
const spanElement = writer.createAttributeElement('span')
conversionApi.mapper.bindElements(modelElement, spanElement)
writer.insert(writer.createPositionAt(divElement, 0), spanElement)
return divElement
},
converterPriority: 'high',
})

然而,这会输出以下内容:

<div>
Text here...
<span></span>
</div>

努力获得跨度内的模型元素:-(

对于其他人来说,我在这里发布了一个有效的解决方案。。。CKEditor 5下播转换器,用于在跨度中换行的段落

最新更新