1

オンライン コラボレーション ツールを構築するプロジェクトに取り組んでいます。ウィキペディアを見て、ユーザーが作成したページのイテレーションを簡単に比較できることに気付きました。比較すると違いが強調されます。

概念的には、ほぼ同じことを行うには何を実装する必要がありますか?

4

2 に答える 2

1

良いアドバイスから合成:

最も簡単な方法は、既存のウィキ エンジンをそのまま使用することです。優れた wiki エンジンはたくさんあります。車輪を再発明しないでください。

たとえば、StackOverflow 自体はカスタム ビルドの wiki です。スタック オーバーフローの編集ビューアーを見て、その機能が質問で説明されている機能をどの程度満たしているかを確認してください。

于 2009-05-10T11:00:28.130 に答える
0

バージョン管理されたデータストア差分アルゴリズムが必要になります。

各リソースにリビジョン番号を付けて、リソースのバージョンを保存します。ユーザーがリソースを編集するときは、リソースを置き換えるのではなく、編集内容を新しいエントリとしてデータストアに新しい、より高いリビジョン番号で保存します。リソースを取得する場合は、リビジョンが最も高いリソースを返します。

リビジョン番号の代わりに、タイムスタンプを使用できます。タイムスタンプは常に増加するだけでなく、リビジョン番号自体を使用して、リソースがいつ変更されたかを識別することができます。

リソースの保存方法に基づいて、diffアルゴリズムを選択します。diffウィキテキストは通常​​行ごとであるため、ユーザーがそれを編集している場合は、標準のUnixユーティリティのように行ごとの差分を使用するのが理にかなっています。リソースがXMLの場合は、XML固有の差分アルゴリズムを見つけて、違いがどこにあるかをユーザーに明確に示すことができます。

于 2009-05-09T22:31:04.670 に答える