操作转换实现(不是JavaScript)[封闭
-
10-10-2019 - |
题
我想实施多用户 操作转换 仅适用于网站上的服务器端的基于普通文本的更改。
您是否可以推荐非JavaScript实现?
解决方案
考虑Google-Diff-Match-Patch-diff,纯文本的匹配和补丁库:
“差异匹配和补丁库提供了强大的算法,以执行同步纯文本所需的操作。”
差异:比较两个纯文本的块,并有效返回差异列表。
DIFF演示匹配:给定搜索字符串,在纯文本块中找到最佳模糊匹配。为精度和位置加权。
匹配演示补丁:将补丁列表应用于纯文本。即使基础文本不匹配,也要使用最佳效果应用补丁。
Patch Demo当前可在Java,JavaScript,C ++,C#,Objective C,Lua和Python提供。无论语言如何,每个库都具有相同的API和相同的功能。所有版本还具有全面的测试安全带。
你可以找到它 这里.
其他提示
考虑py-Infinote。
Py-Infinote是Jinfinote的Python港口,提供了协作文本编辑协议(采用),可用于编写多用户协作文本编辑器。 PY-Infinote用于HWIOS项目。
这是另一个非常有趣的实现,将Google Wave的运营转换与Jedit集成:
OpenCoweb是一种流行的OT实现。有几种用不同语言编写的服务器实现。
简单的参考实现,我将通过添加更多复杂的内容来改进接下来的几个月;
现在它有:
- 简单的文本操作;保留,插入,删除及其相互对抗
- 文本和转换的注释
- 产生更改并将其应用于文本
不隶属于 StackOverflow