Uusi blog tyäkalu

一新された日記

新ブログツール

2006年5月2日火曜日

「な〜んか長らく日記更新されてないんじゃないですかぁ?」というメールがちらほら来ています。そりゃそうですね、4月11日以降、新規の日記を書いていませんでしたから。4月9日の日記に書いていましたが、iWebがどうもうまく動かずに、中身にも色々手を入れてごまかしていましたが、やっぱり毎回毎回過去の全てのページを読み込んで全てのページを保存する形式になっていますから並の遅さじゃない。特にこの日記のように沢山の画像を含んだページを作っていたりすると、かなりの負荷がかかります。iPhotoから画像を選んで「BLOG」を作成するればすっと出来るはずだったのですか、いつの頃からかその振る舞いも怪しくなって、とうとうPowerBookごと落としてしまう遅さになってしまいました。

ということで、全てをあきらめて、iWebというツールを捨てることにしました。さて、他の選択肢も色々と探しましたが、Movable Typeも含めて、何かと制限が多いなぁと眺めたあげく、

ええい面倒だ!自分で作る!

と言う結論に。

作るといっても、見目麗しいインタフェースを作る気もしないので、とりあえずCSSでiWebに似たフォーマットを作ってしまい、HTMLのテンプレートファイルを作って、これを[日付]+[二桁の数字].html(例えば、今日の日記は2006050201.html)毎日の日記を書くことにしました。後はこれをざっとなめて、RSSを作るプログラムを作ればいいわけです。

さらに、元の日記と同等の機能を持たせようと思うと、「次のページ」「前のページ」へのリンクと、表題ページ(最新の五つの日記がリストされる)、アーカイブページ(全ての日記の表題がリストされる)を作る必要があります。この辺の機能を満たすために、PEARのXML_RSSパッケージを利用して、RSS.XMLファイルからリストを読み込むことにしました。例えば各ページのフッタにはmain_footer.phpというファイルを作って、RSSファイルから自動的に「次へ」と「前へ」のリンクを生成するようにし、main_wrapper.phpファイルから日記本文とこのフッタを読み込めるようにしてしまいます。例えば、このmain_wrapper.phpを2006050201.phpという名前でコピーしてやると、このファイルは自動的に2006050201.html(つまりこの日記本文)を読み込んで、さらにmain_footer.phpを読み込んで、リンクのついた日記の一ページとして表示します。

このあたりは、表題ページも同じ仕掛けで、表題の文章が書かれている(でこれがRSSのdescriptionとして利用される)index_title.html、RSSを読み込んでリストを作るindex_body.phpの二つのファイルを読み込むindex.phpの三つのパーツからなっています。アーカイブページの方も同じくarchive_title.htmlarchive_body.phparchive.phpの三つのファイルから成っています。なお、_bodyファイルを読み込む位置は、htmlファイルで、<!-- script comes here -->と書かれたところになっています。この辺、smartyとかを上手く使えばいいんでしょうけど、そこまで調べものするのが面倒になって「それっぽいからまぁいいかぁ」とここでやめてしまいました。

最後の一つの構成要素は、これらのファイルを読み込んでRSSファイルと存在する日付XX.htmlファイルに対応するphpファイルを自動生成するrss_create.php。このファイル、index.php等から自動で呼び出してもいいんですが、そうしようと思うと、日記を置くディレクトリ自体をwwwサーバのユーザ権限で書き換え可能にしなければいけませんから、とりあえずはコンソールから"php rss_create.php"と呼び出してやることにしてあります。

ただし、rss_create.phpというファイルは、日記の第一段落を読み込んでRSS.XMLのdescription部分を作っていますが、この第一段落の定義が<div class="main">の直後の<p>の次の行から</p>の前の行までという非常に雑な定義がされており、かつ、<img>タグが入った行は無視するという仕掛けになっていますし、タグの内外を気にせずに文字数だけを元に切り捨て作業を行ったりしていますので、第一段落にタグが入っていたりすると、何かとトラブルが起こりやすい状況になっています。まだまだPHPファイルそのものに改造が必要ですが、とりあえず使ってみようかなという方は自己責任でお試しいただいても結構です。ある程度直せたら、まとめてダウンロードできるようにしてみようと思いますが、今のところは、一つずつ紐解く根気のある方だけがお使い下さい。

時間があれば、AJAXなインタフェース部分を作ってオンライン絵日記ツールを作ってもいいんですが、私は元々Emacsユーザですので、とりあえずの用途には足りたかなという感じです。

ということで、文章だけ書いておいてあった4月17日4月23日5月1日の日記を整形してアップ(実際に掲載したのは、誤字チェックなどの関係で5月7日)してみました。これでツールを気にせずにゆっくり日記が書けそうですので、又「淡々と」日記を綴ってみようと思います。

そうそう、RSS登録してくださっている方にお願いです。一応これまでのRSSのフォルダと同じ所からリンクをして更新を追えるようにしてありますが、ブラウザによっては不具合が出るようですので、再登録していただければ幸いです。