github製のwiki'gollum'で日本語が使えないときの対処法

この記事はgritの2.4.2がgem installできるようになれば用済みではあるが、本日大変困ったのでメモ。

githubwiki部分を切り出したwiki engineのgollumは、日本語を使おうとすると次のようなエラーが表示されてしまう。

Grit::GitRuby::Internal::LooseObjectError at /
size mismatch

    file: loose.rb
    location: get_raw_object
    line: 59

これは、現時点でgem install gritで入るversionが2.4.1であることによって起きている。gollumが内部で使用しているGit repositoryを扱うライブラリであるgritがbytesizeを使うべきところでlengthを使い文字列を調べているのが原因らしい。
この件に関する修正はgithubのmasterにはcommitされているものの、その修正が含まれるgemはまだgem installで入れられる状態ではない。そのため、自分でgithubからmasterをcloneし、packageを作成する必要がある。

今回は以下のようなコマンドで上記の作業を行った。

$ git clone git://github.com/mojombo/grit.git
$ cd grit
$ rake build
$ gem install pkg/grit-2.4.1.gem --local

gritを入れなおしたらgollumを再起動する。このとき、既にエラーが出てしまったリポジトリで再起動しても同じエラーが表示されてしまった。その場合は素直にgollumのデータを記録するリポジトリを再作成すれば、日本語の文章が記録・表示できるようになっている。