2004/03/14
■blosxom修正箇所メモ #2
こんにちは。「最近、思春期特有の恋愛をしているのではないか
」と噂になっている深沢です(ウソ挨拶)。
今日は結構blosxomまわりをいじったので報告。
旧What's New にBlogのヘッドラインを追加
blosxomにはRSSを出力する機能があるので、それを読み込んでいわゆる「ヘッドライン」を表示するようにしました。今後、旧What's New にはヘッドラインのみを置き、更新情報は全てこちらのBLOGで行いたいと思います。
RSSの解析には、XML::RSSLiteモジュールをローカルに取り込んで使っています。RSSLiteは使い方がエラい簡単でこういう用途には便利なモジュールですが、そのまま使うとマルチバイト文字(要は日本語)が全然通らないので、文字列をサニタイズしている部分をザックリとカットすることで解決(いいのか?)。
Headlinesプラグインを追加
最近追加したエントリの一覧を表示してくれるHeadlineプラグインを追加しました(表示方法を一部修正済)。
右側のリンクバーに表示されている「HEADLINES」がそれです。実際必要かどうかは謎ですが、とりあえずよりブログらしくなった気がします。
RSS出力時、descriptionの長さを抑制できるタグを追加
いわゆる「RSSリーダー」を使っていない方には全然関係ないことなのですが、RSSリーダーでのエントリの概要や、トラックバック時の内容として使われている<description>の長さを抑制する修正を、rss10プラグインに追加しました。
調べてみたら適当なところで自動的に長さを切りつめる手法がよく取られている様ですが、今回はエントリの中にdescription終了専用のタグを作り、それが出現したらそれ以降はdescriptionとして表示しないようにする方法を取りました(内容をこちらがコントロールできるため)。
WWWC対応タグを追加
はてなアンテナ全盛の時代に、WWWCのようなローカル動作の更新チェッカを使っている人がどのくらいいるのかは判りませんが、自分がまだ使っているので対応しました。
最新の記事の更新時刻を取得するため、entrues_indexプラグインが作成したデータ用ファイルの日付を参照して値を返すプラグインを自作して対応しました。初めてのプラグイン。えっちだ(バカ)。
cron で静的ページを自動生成
どうも blosxom の動作がちょっと重いっぽいので(このサーバでは)、crontab コマンドを使って index.html などの静的なファイルをある程度の間隔で作成し、基本的にはそちらを参照してもらうようにしました。なお、旧 What's New のヘッドラインはこの「静的に生成された」方のRSSファイルを見に行くので、こちらが更新されるのは実際よりもやや遅くなります。
旧 what's New の方には「朝7時頃に~」と書いていますが、まだ実際にこの時間に生成されるかどうかはテストしてません。上手くいくかどうかドッキドキにょ(バカ)。
というか、ここは一応マンガファンサイトのはずなのですが、こんな臭い話ばっかり書いてていいのでしょうか。
あと、アンケートに回答して下さった皆さん、ご協力ありがとうございます。暖かいコメントばかりで泣けてきます。生きててよかった!
2004/03/13
■Blosxom Starter Kit利用時の覚え書き
hail2u.net (Kyo Nagashima さん) で公開されている blosxom starter kit を自分が導入した時に気づいた点などのメモ書きです。
必要なもの
・Perl5 が動くサーバ
Trackback を使いたい場合は、LWP や HTTP といった Perl のモジュールがそのサーバで普通に使えることも確認。
自分はこれでヒドイ目に(以下略)。
・UTF-8 形式のファイルを読み書きできるエディタ
スターターキットの中身は UTF-8 で記述されているために必要。文字コードにこだわらないのであれば、このまま UTF-8 で運用した方が良い(Kit に付いてくるテンプレートの中には charset=UTF-8 と直接書かれている箇所があるし、UTF-8 以外では RSS や Trackback 絡みで文字コード変換が発生したりして面倒くさそうだし、etc)。
自分は秀丸エディタを使用。秀丸エディタは起動時オプションに ファイルを UTF-8 形式でオープンする指定があるため(/fu8)、エクスプローラのコンテキストメニューの「送る」に /fu8 オプションを付けた秀丸が立ち上げる設定を追加し、楽をすることにした。
最初に読もう
→ blosxomサイトの日本語訳::訳者が使ってみた感想 (Sucle さん)
blosxomのインストールの方法からblosxom 特有の概念であるフレーバーの詳細な解説、カテゴリやプラグインの簡単な説明まで、判りやすく書かれているページ。たいへんに参考になります。
ここに書いてあることを読んでもピンと来ないにょ? という方は、多分 blosxom には手を出さない方がいいと思う。
スターターキット使用時における補足事項
・『ログ』の項目に書かれている「ブラウザでログを作成・編集することができるプラグイン」wikiedish は、スターターキットの中に含まれている。ただし、blosxom はやっぱりテキストエディタで文章を作成→FTPでサーバにアップロード、が基本な様子。
・フレーバーは、Kyo Nagashima さんが作成したものがデフォルトで入っている。サンプルがこちらのサイトにあります。
・ログの日付を(ファイルの更新日付ではなく)ファイルのアップロードした時のものにする entries_index プラグインも、最初から入っている。
config,cgi の設定
スターターキット に含まれている config,cgi は、オリジナルの blosxom.cgi の中ではソースの中に入っている変数設定部分を切り出したもの。コメントが日本語訳されているのでわかりやすい。
blosxom本体の設定にある $basedir の記述には注意(URI ではなく、サーバ上での絶対パスを指定)。
各変数の具体的な説明については、こちらも参考になる。
→blosxom.org::blosxom初期設定 (blosxom.org)
テンプレートファイルの編集
entries ディレクトリにテンプレートファイルが置かれている。
拡張子(=フレーバー名)が ".html" のものは普通に表示した時に使用されるもので、".htm" は Writebacks の時(=1つの記事のみを表示した時)に使用されるもの。
テンプレートをいじりたい時は、「blosxomサイトの日本語訳」のフレーバーの解説が参考になる。というか、「blosxomサイトの日本語訳」は全部参考になる。読もうぜ→過去のオレ(すみません)。
スタイルシートは、config.cgi の @css_paths で指定したものを編集する。
id名は、"banner" がBLOGのタイトル、"content" がログ部分、"links" が横に表示されるカテゴリとか Google Search とかの部分。
参考:Blosxom Starter Kitに関する情報が載っているサイト
2004/03/10
■blosxom修正箇所メモ
writeback
- 改行をbrタグに変更する処理を追加
- 名前とコメントは必須入力とするようにチェックを追加
- URLを入力されたらaタグで囲う処理を追加
rss10
- 文章の中に実体参照(♥とか)があると、index.rssをブラウザ(IE6.0, Firefox 0.8)で表示させた時にエラーが発生する点の修正(実体参照そのものを削除)
- というか、"&" が単独であるとダメっぽいので、"&"は2バイトコードの"&"に変換
2004/03/05
■BLOSXOM を導入しました
娘にするならブロッサム!
嫁にするならバターカップだよな!(挨拶)
前からの懸案事項だったブログツールを、テスト的に導入しました。
採用したツールは blosxom(ブロッサムと読みます)。hail2u.netさんで公開されていたスターターキットを元に、多少テンプレートやソースをいじって動作させています。
たかがマンガのファンサイトの更新日記如きに、何故ブログなんか使うの? という理由については後日書きたいと思いますが、一番大きな理由はオレがブログと呼ばれるものを使ってみたかったからです。文句あるか!(わがまま)
で、使うブログツールのことなのですが、予定ではサーバ設置型blogツールとして今最もメジャーかつ高性能、国内にもユーザーが多いので情報交換も盛んで導入時の敷居が低く、そしてデザインも格好良いので何か運用しているだけでモテそうな(マニアから)Movable Type を使うつもりだったのです。
が、このサイトが置かれている pos.to ネットのサーバに実際にインストールしてみたところ、「ログインはできるけど画面下にPerlの警告メッセージが表示され、そこから設定画面を開こうとすると再びログイン画面が表示されて先に進めなくなる
」という現象が発生してしまって立ち往生。ちょっと調べてみたところ、どうもこれは具体的な解決策が見つかっていない問題っぽく(サーバ環境の問題?)、結局2時間くらいで挫折してしまいました。
オレにはやはりモテ系ツールは似合わないということなのですか?
そこで、前に購入したウェブログの入門本に Movable Type と同じサーバ設置型ツールとして紹介されていた、blosxom を試してみることにしました。
blosxom は Movable Type と比べると機能は少ないのですが、プラグインモジュールを使うことによって Trackback やコメント追加機能、オンライン編集といったブログっぽい機能を追加することが可能であり、スクリプトも小さいのでソースを読んだり直接カスタマイズすることもでき、それより何より「Perlさえ動くサーバ環境なら設置が可能」という容易さもあって、Trackback とコメントが使えるツールを必要としていた自分にピッタリにょ! とか思いながら導入。
blosxom::日本語訳やC.G.I.::blosxomさんなどを参考にしつつ(ありがとうございます)設定してみました。
設定してみたところ blosxom 本体は簡単に動いたのですが、肝心の Trackback を動かそうとすると、サーバでエラーが発生してしまいます。何でかなー? と思って調べてみたところ、なんかこの pos.to ネットのサーバでは、Trackback を実現するために必要な Perl のモジュール(具体的には LWP::UserAgent や HTTP::Request)がまったく使えないことが判明。
仕方がないので、telnet で login して CPAN から必要になりそうなモジュールを適当に持ってきては blosxom を設置したディレクトリにコピーして試してみるという、もの凄い泥作業を延々と繰り返すハメに。
結局、インストールしてから動作させるまでに約5時間近くかかりました(ヘボ)。まぁ、元々動かない環境で無理矢理動かそうとしたんだから仕方ないんですどねー。
Movable Type はシステムが巨大なので、「動かない→仕方がない」と諦める判断を割と直ぐに下せたのですが、blosxom はなまじシステムが小さく、やろうと思えばソースコードを解読して問題点を探すことができてしまうという、自分の中のハッカー魂を妙に刺激する造りになっていたのが幸い(災い?)した感じ。
おかげで、blosxom の構造を少しは理解することができました。今じゃすっかりブロッサムたんハァハァですよ! オレもユートニウム博士になりてぇ!(←ブロッサム違い)
そんな感じで、とりあえず動いているように見えるところまではこぎ着けたのですが、何しろ泥縄状態で設定したので、Trackback ping を送ったり送られたりといった動作が可能かどうかはまだ疑問。
下の Writebacks をクリックすれば、Trackback Ping の送り先URL やらコメント入力フォームやらが出てきますので、お暇な方は Ping とか投げて頂けるとありがたいです。