運用変換実装(JavaScriptではない)[閉じた
-
10-10-2019 - |
質問
マルチユーザーの実装を検討しています 運用変換 Webサイトのサーバー側のプレーンテキストベースの変更のためだけに。
推奨できる非JavaScriptの実装はありますか?
解決
Google-diff-match-patch-diff、mate、およびpatch libraries for plainテキストを検討してください。
「DIFFマッチとパッチライブラリは、プレーンテキストの同期に必要な操作を実行するための堅牢なアルゴリズムを提供します。」
diff:プレーンテキストの2つのブロックを比較し、違いのリストを効率的に返します。
DIFFデモマッチ:検索文字列が与えられた場合、プレーンテキストのブロックで最高のファジーマッチを見つけます。精度と場所の両方に重み付けされています。
デモパッチを一致させる:パッチのリストをプレーンテキストに適用します。基礎となるテキストが一致しない場合でも、パッチを適用するためにBest-Effortを使用してください。
現在、Java、JavaScript、C ++、C#、Objective C、Lua、Pythonで利用可能です。言語に関係なく、各ライブラリは同じAPIと同じ機能を備えています。すべてのバージョンには、包括的なテストハーネスもあります。
あなたはそれを見つけることができます ここ.
他のヒント
py-infinoteを検討してください。
Py-InfinoteはJinfinoteのPythonポートであり、マルチユーザーの共同テキストエディターを作成するために使用できる共同テキスト編集プロトコル(採用)を提供しています。 Py-Infinoteは、HWIOSプロジェクトで使用されています。
これは、Google WaveのJeditとの運用変換を統合するもう1つの非常に興味深い実装です。
OpenCowebは、人気のある実装です。異なる言語で記述されたいくつかのサーバーの実装があります。
より複雑なものを追加することで今後数か月を改善する簡単な参照実装。
今それはあります:
- 単純なテキスト操作。互いに挿入、挿入、削除し、それらの変換を保持し、削除し、削除します
- テキストと変換に対する注釈
- 変更の生成とそれらをテキストに適用します