※画像は公式サイトデモより

最近、自作でWikiエンジンを書いている。Wikiの三大要素(?)として必要なのは、ページがない場合の自動生成、HTMLを記述する事無く記法によって生成される文章、そして不特定多数が編集するための履歴管理機能だ。

履歴管理をする以上、リビジョンの比較ができなければ意味がない。更新の衝突が起こった場合も必要だ。その際に非常に便利なライブラリがこれだ。

今回紹介するオープンソース・ソフトウェアはgoogle-diff-match-patch、各種言語による差分表示ライブラリだ。

google-diff-match-patchはその名の通り、Google謹製のライブラリだ。何と、Webベースのドキュメント作成ソフトウェア、Google Documentsでも使われている代物だ。

 

提供されているのはJavaScript、JavaそしてPython向けのソースになる。特にJavaScriptはWebブラウザ上でクライアントベースの比較ができるので使い勝手がよさそうだ。

できるのは二つの文章の比較をする(Diff)、差分を表示する(Match)、そして差分情報をもとに前の文章を修正(Patch)する事ができる。Diff形式の差分表示なので、通常のpatchとしても利用できそうだ。

Webアプリケーションは共有、コラボレーションにこそ意味がある。その際には処理がバッティングする事もあるだろう。google-diff-match-patchは実用的で使い勝手のいいライブラリだ。

 

google-diff-match-patch - Google Code
 http://code.google.com/p/google-diff-match-patch/