なんか最近やたらと遅くないですか、、、ということでどうにかしないと日常生活に支障をきたす恐れがあるので、どうにかする*1。自分ははてダラを使って日記を書いているので、ローカルに全部テキストは持っている。ということで、このテキストを使ってローカルにはてダもどきを作ってしまえばよい。
ということでsinatraで作ってみることにした(バイトでちょっとsinatraを使ってみたので)。とりあえず一覧と個別エントリーのページ、あと検索ができればどうにかなる。検索は形態素解析してから転置インデックスに放り込むとか考えたけど、検索漏れが多すぎて使わなくなりそうなので、SuffixArrayを使ってやることにした。これなら漏れはない。形態素解析のやつはクエリーのほうも形態素解析してからunionを取るとかいう感じなんだろうか、よく分からん。
はてな記法の変換にはRuby版のText::Hatenaを使っている*2。ただ、そのままだとslideshareが入っているエントリとかをきちんと表示できなかったり、クラスを書き換えたりした。あと、TeX記法がはてなの中でないと動かないので、Google Chart APIを使ってやるように変更した。
見た目はこんな感じになった。
検索はSuffixArray使ってることもあってかなり早い。自分は900日くらいはてなで日記を書いてるけど、全然問題ないレベル。というわけで2月も生きて行けそうである。