Crowi では編集履歴を見るための History タブがある。ここで過去に保存した時の内容を閲覧できる。ただ、それは過去のバージョンの文書を見ることができるというもので、どこを変更したのか?までは分からない。
複数人で編集していた場合に、誰がどう変更したのかを知りたいというニーズがあるとのことだったので、プロトタイプ的なものを作ってみた。これを作る前に @sotarok と相談した UI や機能があったのだけど、その案を 100% 実装できたわけではない。
でも 0 よりは 0.1 くらいの機能でもあったほうが良いかなと思って、まずはミニマムな機能で pull request を投げてみた。
Crowi の「バージョン」は、内部的には revision
として保存されていて、その中にそれぞれのバージョンの Markdown テキストが保存されていたので、その差分を取得して色付けしたりして表示している。
差分取得には JsDiff を使ってみたけど、もっと良いものもありそうな気がしている。見せ方とかも改善の余地はありそう。
UI 部分には jQuery を使っているんだけど、なんかいろいろ忘れていて調べながら書いていたら結構時間がかかってしまった。書いているうちにだんだん思い出してきたけど。昔は生 JS(?)のほうが苦手だったんだけどねぇ。いまは jQuery ではないほうが書きやすく感じている自分がいる。