サーバー上からBlosxomのCGIスクリプトを消して、Gruntを使ってローカルで動かしてrsync (かscp)するように変えた。Blosxomは捨ててない。でもトップページの出力などいくつかの機能をGrunt側に持たせてしまったので、そのうち全部Gruntでやっちゃいそう……。

Blosxomに飽きたとかじゃなくて.htaccessから脱却したいな、と。何度かつぶやいたりしたけどCGIは動かせなくていいけど.htaccessだけいじれるレンタルサーバー欲しいみたいなことを考えてて、でもそんなものは探した限りではまったくなくて、需要はもっとなくて、そのうち出てきそうという希望もない。となると.htaccessのようなものに依存しない形に静的なファイル群を整えてやる必要があるのかなと。その一歩としてmod_rewriteに強く依存しているウェブログをどうにかしようという試み。


Blosxomでは通常PATH_INFOを見てプロセスするページを決定するんだけど、pathパラメータで指定することもできる。そしてBlosxomが使っているPerlのCGIモジュールは、主にデバッグ目的でCLIでパラメータを渡せるようになっている。これを組み合わせると以下の様なコマンドで任意のページのレンダリング結果を標準出力へ吐くことが可能。

$ perl blosxom.cgi path=/webdesign/css-egg-and-star-clip.html

これだとBlosxomが静的生成モードになっちゃいそうだけど、コマンドライン・オプションとしてpasswordパラメータを指定しなければ動的生成モードのままなので大丈夫。出力ではHTTPヘッダーも吐かれるので、それは自前で処理しなくちゃならない。僕は専用に作ったGruntプラグインでこういったコマンドを叩いているので、ついでにそのプラグイン内で標準出力を受け取ってHTTPヘッダーを削除してから指定ディレクトリ以下に吐くという形でやってる。


おおむね問題ないんだけど、オンデマンドで作らせる方が理に適ってると既に後悔し始めてる。