有没有一种方法可以将sharejs与诸如带有HTML内容的<div contenteditable="true">Content <b>with html</b></div>
的contenteditable-Elements一起使用?
还是还有其他与HTML-Content或Rich-Text结合使用的最佳实践(OT)?如何使用node.js完成?
最佳答案
可以在诸如DOM树之类的树上定义OT算法。我已经为DOM操作编写了一个与shareJS兼容的OT类型:https://github.com/marcelklehr/dom-ot
但是请谨慎使用。即使可行,但问题是同步原始DOM是否是一个好主意,以及您真正想要的是什么。许多浏览器在其DOM实现方面都有各种怪癖,尤其是在处理contenteditable元素方面。
另一种方法是依靠浏览器内富文本编辑器提供OT互操作性。例如,CKeditor团队目前是v5的devising such a feature。 ProseMirror advocates and supports是一种重新定型和转换方案,类似于版本控制系统中的方案(与OT的区别在于,如果您以不同的顺序应用编辑,则不能保证副本会收敛)。