2004年12月04日 (土)
RSS 2.0 の拡張の実際
「iBlog 1.4.1b1 の RSS 2.0 を拡張してみよう」で iBlog 1.4.1 から採用された RSS 2.0 で定義されている要素を紹介しました。RSS のテンプレートファイル FeedPage.txt に元々はなかったものも私のブログでは実際に使用しています。このエントリではそれを実際にどのようにしているかを紹介します。
[2004年12月9日 追記あり]
FeedPage.txt
私が実際に使用している FeedPage.txt は次のようになっています。
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[<$BlogName$>]]></title>
<link>[_$DocumentRoot$]/index.html</link>
<description><![CDATA[<$BlogDescription$>]]></description>
<language>ja</language>
<$Copyright$>
<managingEditor><$LinkMade$></managingEditor>
<$WebMaster$>
<pubDate>[$DatePublished$]</pubDate>
<lastBuildDate><$DateBuild$></lastBuildDate>
<generator>iBlog <$iBlogVersion$></generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<image>
<url><$BlogImageURL$></url>
<title><![CDATA[<$BlogName$>]]></title>
<link>[_$DocumentRoot$]</link>
<width><$BlogImageWidth$></width>
<height><$BlogImageHeight$></height>
<description><$BlogImageDesc$></description>
</image>
<ForEachEntry>
<item>
<title><![CDATA[<$EntryTitle$>]]></title>
<description><![CDATA[<$EntryAbstractOrBody$>]]></description>
<link>[_$DocumentRoot$]/<$EntryLink$></link>
<author><$LinkMade$></author>
<comments>http://www.haloscan.com/comments/<$HaloScanID$>/<$EntryLink$></comments>
<$EntryEnclosure$>
<guid>[_$DocumentRoot$]/<$EntryLink$></guid>
<pubDate><$EntryPostDate$></pubDate>
</item>
</ForEachEntry>
</channel>
</rss>
強調してあるところがオリジナルに入っていない要素です。私の場合、iblogPatcher を用いてブログ毎に別な値を用いることができるように変数にしていますが、comments 要素以外は必要というわけではありません。
既に前のエントリで各要素の説明はしてあるので以後は、このテンプレート FeedPage.txt のための iblogPatcher の設定の実例を示します。
MY_REPLACE.plugin の設定
ほとんどがこの設定です。直接 FeedPage.txt に値を埋め込むのではなくブログ定義ファイルに MY_REPLACE.plugin の設定として値を書くことによって、複数のブログについて別々な値を割り当てることができます。
このプラグインのための設定については「続 一行目の HTMLCode」のセクション「設定先の確認」と「設定の追加」に書きました。「設定の追加」に書かれたものに相当する部分を列挙していきます。値はブログ「僕は見ていた」のものです。
- <$BlogImageURL$>
{
# Blog Image URL
'name' => '<$BlogImageURL$>',
'value' => '[_$DocumentRoot$]/image/animation/moke10.gif',
},
これが使用されている image 要素の効果を例示しましょう。RSS リーダによってはこれが入っていると、そのブログのイメージとして使用してくれます。例えば NetNewsWire Lite では、そのブログのプロパティを開くと、このように
表示されます。
- <$BlogImageWidth$>
{
# Blog Image width
'name' => '<$BlogImageWidth$>',
'value' => '47',
},
- <$BlogImageHeight$>
{
# Blog Image height
'name' => '<$BlogImageHeight$>',
'value' => '77',
},
- <$BlogImageDesc$>
{
# Blog Image description
'name' => '<$BlogImageDesc$>',
'value' => 'このブログのマスコットキャラクター',
},
- [_$DocumentRoot$]
{
# ブログのドキュメントルート
'name' => '[_$DocumentRoot$]',
'value' => 'http://homepage.mac.com/yuji_okamura/iblog/iSawIt',
},
この [_$DocumentRoot$] は元々 FeedPage.txt で使用されているもので、公開時に iBlog に設定した値に置き換えられるものですが、これが置き換えられないもケースもありますし、エントリの中でも使いたいので設定しています。
- <$HaloScanID$>
{
# HaloScan ID
'name' => '<$HaloScanID$>',
'value' => 'yujiokamura',
},
- <$LinkMade$>
{
# Mail Address
'name' => '<$LinkMade$>',
'value' => 'yuji_okamura@mac.com',
},
実体参照が並んでいますが、実体参照を解くと私のメールアドレスになっています。効果はあまりないと思いますが、機械的なメールアドレス収集に対抗するために実体参照にしてみました。
実はこの設定は FeedPage.txt のためにしたものではありません。XHTML の rev 属性値が made の link 要素の href 属性値(そのページを作成した人)のための設定です。(「iblogPatcher 用カスタマイズ済みテンプレート(BlogPage.txt)」を参照)
iblogPatcher を使用していない方は、FeedPage.txt の中の置き換え項目を、'value' => の右側に書いた文字列(にあなたのブログで相当するもの)で手で置き換えて、FeedPage.txt に直に書いてください。
ブログ定義ファイルに書いた順序で列挙してあります。後に設定してある項目は、それ以前に設定した項目の 'value' の中で使用できます。この性質を利用して部分的に同じ文字列を何度も書かなくて済みます。
CHANGE_CONTENT.plugin の設定
FeedPage.txt の中ではエントリページで使用できる <$EntryUUID$> が使用できません。HaloScan によるコメントの場合、これに相当するものが必要なのですが、それがないのです。
そこで <$EntryUUID$> に相当するものが含まれる <$EntryLink$> で一旦済ませんます。もちろんこのままでは変な URL になってしまいます。そこでブログ定義ファイルに次のような設定を入れます
# iBlog 1.4.1b1 以上の FeedPage.txt の comments 要素の中で
# <$EntryUUID$> の代わりに <$EntryLink$> を用いる
push @{$CHANGE_CONTENT::Conf{'FeedPage'}}, {
'condition' => '¥/C¥d+¥/(E¥d+)¥/index¥.html<¥/comments>',
'replace' => '¥/$1<¥/comments>',
'option' => 'g',
};
この設定を入れるのは ACTION > preview > after > onStart の中です。「iblogPatcher のブログ定義ファイルテンプレート」で示したものに挿入するとすれば # 連続する <br /> を一つにまとめる の前後辺りに挿入します。
Posted: 04:07
| Comment
| Trackback
以下、類似エントリです。
|
Quick Links
お知らせ
Blog コメント
個々のエントリに関するコメントでないことはこちらにコメントしてください。時々古い方から消していきます。予めご了承下さい。
カレンダー
カテゴリ
アーカイブ
月毎のエントリ一覧
旧サイト引継ぎ(抜粋)
XML/RSS Feed
検索
最近のコメント
BlogPeople
任意のリンクサイトへジャンプ
※最近更新の 24 サイトまで表示
.Mac Tips について
.Mac および .Mac 配布アプリケーションを利用するためのノウハウやツールを提供しているウェブログです。iBlog の諸問題を克服し様々な機能を追加するためのツール iblogPatcher とそのプラグインや iBlog のバックアッププログラム iBlogFreezer の開発と公開、.Mac カウンタなど .Mac 提供機能の流用&カスタマイズ方法の紹介などがメインコンテンツです。
各種検査結果
うっかりすると駄目になってしまいます。エラーが検出されたときは Blog コメントでお知らせください。
Service & Community
Statistics
Total entries in this blog:
Total entries in this category:
Published On: 2006-08-10 20:42
DotMac Counter:
|