2004年11月14日 (日)

iBlog 1.4.1b1 の RSS 2.0 を拡張してみよう

iBlog 1.4.1b1 では RSS が以前の 0.92 ではなく 2.0 になっています。RSS 2.0 は 0.9X の後継 RSS で MT などで採用されている RSS 1.0 とは別系統です。

私としては 1.0 へ行ってほしかったのですが、2.0 になってしまったからにはこれを使いこなしてみるのもいいかもしれません。1.4.1b1 をダウンロードだけしてインストールしていないのですが、1.4.1b1 を導入されている諸兄に試してもらえたらなぁというのを書いてみます。

同日 追記あり
11月15日 追記あり


テンプレート

まずは iBlog で使えそうなもの全部入れてみたテンプレートを提示します。私が加筆したものの解説は後でします。channel の image 要素と item の comment 要素あたりを採用するのがいいかなと思います。

<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="iBlog <$iBlogVersion$>" -->
<rss version="2.0">
  <channel>
    <title><![CDATA[<$BlogName$>]]></title>
    <link>[_$DocumentRoot$]</link>
    <description><![CDATA[<$BlogDescription$>]]></description>
    <!-- ここから channel のオプションサブ要素 -->
    <language>ja</language>
    <$Copyright$>
    <managingEditor>ここにメールアドレスを入れる</managingEditor>
    <$WebMaster$>
    <pubDate>[$DatePublished$]</pubDate>
    <lastBuildDate><$DateBuild$></lastBuildDate>
    <generator>iBlog <$iBlogVersion$></generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>ここにキャッシュの有効時間を分単位で入れる</ttl>
    <image>
      <url>ここにブログのイメージ(gif,jpg,png)の URL を入れる</url>
      <title><![CDATA[<$BlogName$>]]></title>
      <link>[_$DocumentRoot$]</link>
    </image>
    <skipHours>ここにアグリゲータが再取得をスキップする時間を入れる(0〜23)</skipHours>
    <skipDays>ここにアグリゲータが再取得をスキップする曜日を入れる</skipDays>
<ForEachEntry>
    <item>
      <!-- ここから 一つの item にどれかがなければあならない -->
      <title><![CDATA[<$EntryTitle$>]]></title>
      <description><![CDATA[<$EntryAbstractOrBody$>]]></description>
      <!-- ここまで 一つの item にどれかがなければあならない -->
      <!-- ここから item のオプションサブ要素 -->
      <link>[_$DocumentRoot$]/<$EntryLink$></link>
      <author>ここに記入者のメールアドレスを入れる</author>
      <comments>ここにコメントへの URL を入れる</comments>
      <$EntryEnclosure$>
      <guid>[_$DocumentRoot$]/<$EntryLink$></guid>
      <pubDate><$EntryPostDate$></pubDate>
      <!-- ここまで item のオプションサブ要素 -->
    </item>
</ForEachEntry>
    <-- ここまで channel のオプションサブ要素 -->
  </channel>
</rss>

channel 要素に加えたもの

language 要素
ブログが書かれた言語を示します。
managingEditor 要素
ブログの内容を編集する人の中で応答可能な人のメールアドレスです。
ttl 要素
RSS がブラウザやリーダにキャッシュされたときに、そのキャッシュがどれだけの間利用可能かを表します。

例えば一日に三回更新する人にとって、8時間 以上キャッシュが使われてしまったらせっかくの更新を伝えられません。この場合は 480 と書いて最長 8 時間までならキャッシュしてよいと教えて上げましょう。(実際に従うかどうかはリーダ依存です)

8 時間毎に更新するブログの場合、さっきは 480 と書きましたが、確率的には 240 がよいと思います。キャッシュされてからオリジナルが更新されるまでの平均時間が 240分 だからです。

image 要素
ブログのイメージ(gif, jpg, png)について記述します。この要素には更に下位の要素があります。
次は必須要素です。
url 要素
イメージファイルの URL です。
title 要素
channel 直下の title 要素と同じがよいでしょう。
link 要素
channel 直下の link 要素と同じがよいでしょう。
次はオプション要素です。
width 要素
イメージの横幅をピクセル単位で入れます。
height 要素
イメージの高さをピクセル単位で入れます。
description 要素
イメージの説明です。

HTML レンダリングでイメージが表示されたときに title 属性として使用される文字列です。多くのブラウザでは「ツールヒント」としてマウスをイメージのところに持っていくとポッと出てくるあの文字列が title 属性の値です。

skipHours 要素
アグリゲータ(RSSを取得するもの)がこの RSS を取得をスキップする時刻です。深夜 0 時から 23 時までを 0 から 23 の数字で表します。複数記載できるようですが、どのように記載するかまではよくわかっていません。予想ですが cron の記法を真似して 0-8,18-23 (9時から17時以外のつもり)というように書くのかもしれません。根拠はありません。
11月15日 追記

tauranさん教えてもらいました。skipHours の中に hour 要素を作り、その値として 0 から 23 の数値を一つ書きます。複数の hour 要素を並べて入れることができます。

skipDays 要素
アグリゲータ(RSSを取得するもの)がこの RSS を取得をスキップする曜日です。monday とかの曜日名を使います。これも複数記載できるようですが、どのように記載するかまではよくわかっていません。
11月15日 追記

これも skipDays の中に day サブ要素を入れます。その値は Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday の何れかで、複数個 day 要素が入れられます。

item 要素に加えたもの

author 要素
このエントリを書いた人をメールアドレスで記載します。
comments 要素
エントリへのコメントの URL を記載します。
同日 追記

私も iBlog 1.4.1b1 にしました。comments 要素は FeedPage.txt の中で <$EntryUUID$> が使用できないので、代わりに <$EntryLink$> を用い、後で iblogPatcher で補正するという手段をとりました。これ以外でここに挙げた要素は全て FeedPage.txt の編集で付けることができます。ただし、複数の blog を運営している人で、メールアドレスなどが共通でないとその部分は iblogPatcher のようなツールなしにはできません。また、ttl, skipHour, skipDays はいつエントリを書くか決まっていないので付けませんでした。


Posted: 16:21    | Comment | Trackback


以下、類似エントリです。