RSSを作ってみる

先週あたりにD-COT 1月4日経由でrss-jp.netというサイトを知ったのですが、「日本で配布されているRSS/RDF」の独自生成のところを見ると、普段お見かけしているサイトのRSSもちらほらと。

RSSがサイトの概要を公開するRDF/XML文書、とことくらいは以前にThe Web KanzakiでのRSSの説明を見かけていて頭にはあったものの、今ひとつピンとくるものがないままだったのですが、実際に利用例を見て、しかも個人サイトでも導入しているところがあるのを見ると、にわかに興味が出てきたのでありました。で、改めてThe Web Kanzakiでの説明など、RSS関連ページの熟読を開始。

なんとなく分かってきたところで、さて自分とこにも導入してみようと考えたのですが、いちいちRSSファイルを手書きするのは面倒だし記述を間違えるかもしれず、やはり面倒なことはコンピュータにさせたいところ。徒書では最新記事の表示に、HTMLファイルを読んで最新数件を表示するCGI(index.cgi)を使用しているのですが、これを元にして最新記事の概要をRSSとして出力できないか。……といった思考の流れで、RSS生成スクリプトのサンプルも参考にしつつ、rss.cgiができまして、8日あたりから密かに公開してました。

当初、文字コードはHTMLファイルと同じShift_JISのままで出力していたのですが、RSS Validatorにかけてみたところ文字コードが無効というようなエラーになりちょっと悔しかったので、急遽Jcode.pmの使い方を覚えてUTF-8変換を達成。HTMLファイルについては、古いブラウザで見ることも考えてもう暫くはShift_JISのままにしておきたいけど、最近の技術には(XMLのデフォルトの符号化方法でもある)UTF-8を使っていった方がよいか、などと考えてみたり。……てなところで改めてRSS 1.0の仕様をよく見てみると、文面にはUTF-8(とUS-ASCII, ISO-8859-1)のことしか書いてないから、やはりUTF-8にしておくべきなのだろうか。

Encoding
While RSS 0.9 supported only ASCII encoding, RSS 1.0 assumes UTF-8. Using US-ASCII (i.e. encoding all characters over 127 as &#nnn;) is conformant with UTF-8 (and ISO-8859-1, HTTP's default header encoding).

サイトによっては、XSLTを使ってRSSを対応ブラウザで表示できるようにしているところもありましたが、ここのRSSはスタイル無しの素のままであります。自分がXSLTをほとんど知らないというのが最大の理由ですが、RSSの実用例を見ていると、「色んなサイトのRSSファイルを収集 → ツールにより見やすい形に加工して更新情報を表示」というのが一般的な利用法のようであり、必ずしも1つのRSSファイルをじかにブラウザで読みやすくする必要はないのかも、とも思いまして。

例えば、ここのRSSをウェブベースのツールで表示させた場合はこんな感じ。CGIのパラメタにより表示を変更できるものもあります。

また、試しにrss-jp.netで公開されているスクリプトを使用して、某方面で公開されているRSSをHTML表示するページなんてのを作ってみました。<script ... ></script>タグを並べるだけで好きなサイトの更新情報が見られる、というのは確かに手軽で便利そうであります。

後から、RSSのMIMEタイプは何とすべきか、ということが気にかかりました。仕様では今のところapplication/xmlとなっているようだけど、RSS独自のMIMEタイプもそのうち登録される様子。で、検索してみるとまだ正式登録されていないようですががapplication/rss+xmlというのが提案されているらしい(英語ページばかりなので斜め読みですが)。またlink要素の使い方として、サイトのトップページに

<link rel="alternate" type="application/rss+xml" title="RSS" href="url/to/rss/file">

と書くやり方がdiv into markの2002年6月2日(英語)など幾つかのページに記述あり。そんなわけで、link要素の使い方も含めてここでもその方法を取り入れてみました。

ただ、RSSをapplication/rss+xmlで出力すると、ブラウザでソース確認ができなくなってしまう(ダウンロードのダイアログが出てきてしまう)ので、CGIを少々改造してURLに?xmlをつけるとapplication/xmlで出力する機能なぞつけてみました(CGIだとMIMEタイプの出力も融通がきいて便利)。一応正式版は"http://www.akatsukinishisu.net/itazuragaki/rss"ということで。

註: 現在はapplication/rss+xmlで提供するのをやめて、application/xmlとして提供しています。

その他のRSS関連ページでは、agenda -2002/9/16〜31を読んで、RSSもまた厳密に書くべきだなと改めて認識してみたり、グランド・ウェブ! ファンキー ヘタレ・ロードの2002年11月3日を読んで、Flashティッカーで更新情報表示するのは見た目かっこよくていいなと思ったり、などと興味深く読みました。

* * *

嗚呼、案の定文章が長くなってしまいました。きっと新しいものを覚えたてで浮かれているのです。

(2003年1月12日)

北村曉 kits@akatsukinishisu.net