[英]How to determine OT Text Diff
我正在尝试对我的前端代码实施sharedb
操作。 我目前拥有它,因此当我的react
组件触发其onChange
事件时,它会提交一个操作( https://github.com/ottypes/json0 ),特别是text0
。 例如:
如果我的文字是: Hello World
然后我删除l
使其成为Hello Word
然后我在末尾添加s
使其成为Hello Words
我想要它,以便我的 OT 文本差异应该具有提交给其他客户的操作(除非这是错误的)
[{p: 9, d: 'l'}, {p: 10, i: 's'}]
使用库或手动生成这些操作的最佳方法是什么? 我研究了也许使用diff
库,但它没有给出操作发生位置的任何索引,尽管给出了插入和删除操作是什么。
您可以使用浏览器提供的选择属性和 onkeydown 事件手动构建变更集,或使用差异库,例如 Neil Fraser 的https://www.npmjs.com/package/diff_match_patch对我非常有用(免责声明: 我是那个包的发布者。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.