TiddlyWiki用の検索ツールをRubyで作ってみました(ライブラリ付き)。

TiddlyWikiというhtmlファイル一つで作られているWikiがあります。様々なblogwebページで紹介されており、愛用者も多いようです。
私も個人用のローカル日記として、プレーンテキスト、EmacsのアウトラインモードPuikiwiki等を経て、最終的にTiddlyWikiに落ち着きました。

とても便利なTiddlyWikiですがいくつか不満もあり、その一つに検索機能が貧弱ということがありました。
例えば

  • 検索結果が見づらい(HTMLファイル一つで作っていることの限界)
  • 正規表現が使えない
  • タイトルによる絞り込みが出来ない
  • マッチ部分のみを抽出等、加工がしづらい

そこでTiddlyWikiをコマンドラインから検索するツールを作ってみました。RubyGemで開発しているのでrubyをインストールされている方は簡単にインストール可能です。

gem install tidtools

gemのインストールが終わると、3つのアプリが使えるようになります。

tidgrep TiddlyWikiファイルをgrep検索
twgrep TiddlyWiki内のつぶやき形式のテキストを検索
twmerge つぶやき形式のテキストをマージする

tidgrepTiddlyWiki専用のgrepです。正規表現、tiddle(TiddlyWikiのページ単位に相当)タイトルによる絞り込み、マッチセグメントの指定(行単位、tiddle単位、つぶやき(後述)単位)等、一通りの機能をサポートしています。

twgrepつぶやき検索に特価したgrepです。自分のローカル日記の中には一人つぶやき用のtiddleがあり、Twitterにも書けないような小さなことでも思いついたらすぐ書くようにしています(人に見せないと思うと何でも書けるのです^_^)。1つぶやき1tiddleではさすがに多くなりすぎるので、ひと月1tiddle、つぶやきの区切りは水平線で書いていて、つぶやき単位でセグメントしてくれるツールを専用で作りました。

twmerge二つのテキストに別々に記録されていたつぶやきを日付順に並び替えてくれるツールです。私はPCが近くに無い時は携帯につぶやきを記録しているのですが、それをTiddlyWikiにマージしたい時に使っています。

各ツールの使い方、設定、ソースコード等は下記のページが詳しいです。

上記のアプリを作るために、TiddlyWikiの情報をRuby経由で引っ張るためのライブラリも少し整備しました、tidtoolsをインストールすることでそちらも使えるようになります。ライブラリをたくさんの人が使ってくれてTiddlyWikiがより便利になっていけば嬉しいです(私ももう少しツールを作って遊ぶ予定です)。

試しに流行りのTwitterアカウントも作ってみました、興味のある人は是非フォローしてみて下さい。