5

Webサイトのサーバー側でプレーンテキストベースの変更のためだけにマルチユーザー操作変換を実装しようとしています。

推奨できるJavaScript以外の実装はありますか?

4

5 に答える 5

2

Google-Diff-Match-Patch-プレーンテキスト用のDiff、Match、Patchライブラリを検討してください。

「DiffMatchおよびPatchライブラリは、プレーンテキストの同期に必要な操作を実行するための堅牢なアルゴリズムを提供します。」

相違:プレーンテキストの2つのブロックを比較し、相違のリストを効率的に返します。

差分デモ一致:検索文字列を指定して、プレーンテキストのブロックで最適なあいまい一致を見つけます。精度と位置の両方に重み付けされています。

デモパッチの一致:パッチのリストをプレーンテキストに適用します。基になるテキストが一致しない場合でも、パッチを適用するために最善を尽くしてください。

パッチデモ現在、Java、JavaScript、C ++、C#、Objective C、Lua、Pythonで利用できます。言語に関係なく、各ライブラリは同じAPIと同じ機能を備えています。すべてのバージョンには、包括的なテストハーネスもあります。

ここで見つけることができます。

于 2011-10-18T22:03:47.240 に答える
0

Py-infinoteを検討してください。

py-infinoteはJInfinoteのPythonポートであり、マルチユーザーの共同テキストエディターを作成するために使用できる共同テキスト編集プロトコル(adOPTed)を提供します。Py-infinoteはHWIOSプロジェクトで使用されます。

https://github.com/sveith/jinfinote

于 2011-10-18T22:00:59.473 に答える
0

これは、googlewaveの操作変換をjeditと統合するもう1つの非常に興味深い実装です。

https://github.com/djspiewak/cccp

于 2011-11-14T09:58:12.593 に答える
0

OpenCowebは人気のあるOT実装です。異なる言語で書かれたいくつかのサーバー実装があります。

于 2014-10-25T22:26:57.147 に答える
0

より複雑なものを追加することで、今後数か月で改善する単純なリファレンス実装。

今それは持っています:

  • 単純なテキスト操作。保持、挿入、削除、およびそれらの相互の変換
  • テキストと変換の注釈
  • 変更の生成とテキストへの適用

https://github.com/slevental/operational-transformation

于 2016-03-22T05:31:02.923 に答える