SVX日記
2005-03-04(Fri) プラグインを仲裁する
先日からコチョコチョと書いているが、当サイトはtdiaryで運営されており、namazuによる検索システムを導入するに当たって、squeeze.rbというプラグインを追加している。ところが、ツッコミを検知してそれをメールするプラグインcomment_mail-smtp.rbと相性が悪いのか、同時に使うとツッコミ時にエラーが表示されてしまうのである。
ツッコミ自体は記録されるため、問題がないといえばないのだが、非常にカッチョ悪い。オイラのtdiary環境に起因するモノなのかもしれないが、なんとかせねばならん。しかたないので、エラーメッセージを元に原因を洗うのである。
……治らん。コードを表面的にしかナメてないのでアレだが、プラグインはそのRubyコード中で、自らRubyコードを生成、本体からprocクラスで呼び出されるようなシカケっぽいのだが、その中でエラーが発生しているようなのだ。そこで、そのコードを出力させたいのだが、procクラスにはコードを出力するメソッドが備わってないのである。むぅ、それでは追跡のしようがないではないか。なんか勘違いしているのだろうか。
しかし、突然に別の解法を思いついた。squeeze.rbというプラグインは日記の更新時に、更新した日付のHTMLを生成するのが主機能なのだが、コマンドとして任意のタイミングでHTMLを吐かせるコトもできるのだ。namazuがインデックスを作るのは1日に1度だから、その直前にsqueeze.rbを実行してHTMLを生成してやればいいのだ。なにも更新毎にHTMLを生成してやることはない。そうすれば、プラグインからsqueeze.rbを外すコトができるから、comment_mail-smtp.rbと競合してエラーがでることもないのである。
# 日記タイトルリスト更新
5 2 * * * cd diary; ../public_html/diary/makecont.rb > ../public_html/diary/content.html
# HTML更新
5 3 * * * /usr/share/tdiary/plugin/squeeze.rb.cron -p /usr/share/tdiary -c /home/svx/public_html/diary -x .html /home/svx/diary/cache/html
# 検索インデックス更新
5 4 * * * export LANG=ja; mknmz -c /home/svx/diary/cache/html --output-dir=/home/svx/diary/index