2002-03-01(金) 7600歩 [長年日記]
■ Ruby 1.6.7-preview2
preview1の時はテストできなかったけど、preview2が出たのでこっちはお試し。
といっても、今まで使ってたSPECのバージョンを変えてビルドして、入れ替えて、tDiaryが動いていることを確認しただけだけど。環境はSushi。rename.rbが削除されたので、Kondara用SPECに付属のruby-nolocal.patchが一部あたらないのを修正した他は問題なし。
■ tDiary: 1.4?
ゆうべ#tDiaryで「1.4はいつ出すのか」と聞かれた。そうは言っても、おれはリリース時期を明言して自分の首を締めたりはしないから(笑)。
でもまぁ、計画を書いておくと。
いまのスナップショットが問題なければ、それを1.3.4にする予定。で、その次は記述フォーマットや保存フォーマットの差し替えを可能にするという大改造に取りかかろうと思っているので、1.3.4とそれ以降は大きく変化するはずだ。
……となると、1.3.4をそのまま1.4.0にしてしまった方がいいのではないか。1.4のmain featureとしてはプラグインがあるわけで、バージョンアップには十分な理由だろう。むしろ、安定してきている1.3系をさらにいじるよりは、新しいブランチを起こした方がいいかも知れない。ちょうどSourceForgeに移行したこともあるし。
というわけで、現状のまま1.4にする可能性大。今後の開発計画で完了していないものはそのまま1.4回し……にされたら困るという人は、今のうちにリクエストしておくとよろしいかと。
■ tDiary: 本日のcommit
mod_rewriteによるURL書き換えに対応するため、anchorプラグインを実装。コイツをうまく使うと、従来の「?date=YYYYMMDD」なんていかにもCGI然としたURLじゃなくて、「YYYYMMDD.html」なんてのが使えるようになる。試しにMary日記に適用してみた。ただし、添付のプラグインはまだ未対応。
これを試すために、しばらくのあいだtDiary.Netが不安定になってしまったことをここでお詫び……って、ここでしてどーする。でもすまぬ。mod_rewriteって難しいなぁ。
これに伴って、myプラグインも実装。mod_rewrite対応してるサイトから対応してないサイトへの引っ越しで、今まで使えてたURLが使えなくなると自サイト内リンクさえ切れてしまうので。ぜんぜん説明になってないが、まぁ、そういうことだ(笑)。使い方は今夜書きます。
■ tDiary with mod_rewrite
といっても別に両者が連携するわけではないのだが。
まず、mod_rewriteでtDiaryのURLを「?date=YYYYMMDD」から「YYYYMMDD.html」に変える方法。httpd.confを以下のように(/diary/が日記のディレクトリとする)。
RewriteEngine on RewriteRule ^/diary/([0-9]+)\.html$ /home/httpd/html/diary/index.rb?date=$1
以上。
■ これで「YYYYMMDD.html」でアクセスできるようになるのだが、日記に埋め込まれた段落アンカーがまだ「?date=YYYYMMDD」を指している。これを変更できるようにするのがanchorプラグイン。
デフォルトでは標準のアンカーを生成するようになっているので、自分で新しいルールを生成するプラグインを書いて置き換えればよい。
def anchor( s ) if /^(\d+)#?([pc]\d*)?$/ =~ s then if $2 then "#$1.html##$2" else "#$1.html" end else "" end end
■ 明日から独身
明日から4日間、かみさんが友だちと旅行に行ってしまうので、4日間ほど独身状態になる。こういう時はアレだ。Asumi RC2を入れよう。いよいよAsumi日記にするぞ。
……なんて言ってると、Kondara 2.1が正式リリースになるような気がする。すごくする。この強烈な予感はなんだ?(笑)
アンカータグ(笑)
↑意味不明やがな……
私のような hns からの乗換え組のために、
?yyyymmdd => ?date=yyyymmdd
?yyyymm => ?date=yyyymm
も rewrite してくれるとうれしいな。もちろん、mod_rewrite ではなく
tdiary でそのまま対応しちゃう、という選択肢もありますね。
あ、さすがに「n 年日記 (?mmdd)」は面倒ですよね。:o
というわけで、かずひこさんならhns風anchorプラグインを書けますよね:-)
いや、それは書けそうなのですが、肝心の '?yyyymmdd' を、mod_rewrite が扱ってくれません。
httpd.conf で RewriteLog を書き出すようにして調べてみると、どうも、'?' 以降を捨ててから RewriteRule にマッチングしているようで、そうだとしたら tdiary 側で直接対応しない限りどうしようもなさそうです。
DirectoryIndex が使用できない(参照スクリプトを tdiary.conf で明示している)環境で html_anchor.rb をインストールすると、日記中の段落アンカーが index.rbYYYYMMDD.html のようになってしまいます。
これをナントカする方法があれば、ぜひご助言を頂きたく…。
# ウェブサーバの管理者さんに DirectoryIndex に index.rb を追加してもらえないかとお願いはしているのですが…。
こんなツッコミがあったのか……。こんなとこに書かれてもなぁ。
とりあえず、index.cgiは使えないのかな、と疑問を呈しておこう。