MediaWiki 可视化编辑器:访问自动生成的段落?

MediaWiki VisualEditor: Access auto generated paragraph?

我正在使用 VisualEditor 扩展 MediaWiki 实现,遇到以下情况:

我有一个 div 其内容(打开和关闭标签之间的文本)应该与在 wiki 和可视化编辑器中看到的不同。在 wiki 中,我想查看全文,但在 VE 中我只想查看缩写。在 VE 中也可以是 modified/deleted/extended。

例如,我想在wiki中看到Product A, Product B and Product C,但在VE中看到pa,pb,pc。当我将 VE 中的值更改为 px,py 时,我想在 wiki 中看到 Product X and Product Y

问题是VE会自动为文本创建一个段落,所以在VE内部数据是这样存储的:

data[i]:   My-Custom-Div-Data-Structure
data[i+1]: Paragraph
data[i+2]: T
data[i+3]: e
data[i+4]: x
data[i+5]: t
data[i+6]: /Paragraph
data[i+7]: /My-Custom-Div-Data-Structure

在一个方向上(HTML Dom -> VE 线性数据)我通过在自定义数据结构的 toDataElement 函数中将新值设置为 domElement 来解决这个问题。

但是我怎样才能实现另一个方向呢?我有一个 VE 线性数据元素,但我无法将正确的值设置为 inner/outer-HTML/Text 或 textContent,因为在我的自定义数据结构得到处理后,旧值从段落中获取并插入 [=36= 之间]s,导致双文本。

我无法访问该段落,所以我使用了一个非常丑陋的 hack。在 ve.dm.Converter.js.prototype.getDomSubtreeFromData 中,在插入段落文本的行中,我将检查父项是否属于我的自定义数据类型添加到 text.length > 0 检查(大约第 1220 行)。

这是一个非常丑陋的解决方案,但遗憾的是我现在不知道更好的解决方案。