Blosxomでは記事ファイルの1行目がタイトル、それ以降が本文になる。他のプログラムから扱おうとすると、そこで分割しなくてはならないのでいろいろと面倒くさい。そこでそれぞれの記事ファイルの1行目をh1要素でマークアップしてしまうように変えた。

プレビューするツールを作るとかでも楽になることもそうだが、とりあえずほぼHTML文書らしき形になっていると、どうにでもできそうで良い。とくにそのままjsdomなどに何もせずに食わせることができるのも大きい。単純な置換では難しい細かい変更(マークアップの更新や文言のドラスティックな変更)をたまにやりたくなってしまうので、こうなっていると楽ができそうだ。

利用しているツールを変えるという場合でもHTMLならなんとかなるのではないか、という甘い見込みも少しある。単純にはうまくいかなかったとしても、jsdomで扱えればフォーマットを変換する何かも書きやすいのではないか、という更に甘い予測もしている。

このままだと本来のBlosxomによる出力側で変なになるので、テキトウにh1要素を削除してやるプラグインをでっち上げたりもした。プラグインのファイル名の先頭に00を付けて優先度を上げておけば、他のプラグインとの連携もうまくいく。


記事ファイルそれぞれの更新はVimでやった。

:vimgrep /\%^/ **/*.txt

まずVimの正規表現が利用できる:vimgrepコマンドを使い、\%^でファイルの先頭をグレップしてやる。

:cdo s/^\(.*\)$/<h1>$1<\/h1>/ | update

そしてVim 8.0から入った:cdoコマンドを使い、置換して保存した。:cdoコマンドのヘルプを読むと、グレップ結果などのQuickFixに表示されている部分に限定して処理するわけではないようなので、注意が必要そうだ。

記事HTMLを再生成したところ変化はなかったので、うまく動いているのだろう。


このまま勢いで似た何かをNode.jsで作ってしまいそうだ。