What's New: 2004年5月アーカイブ

MagpieRSSを導入した記念にJumbled NEWSなるものを作ってみた。無造作に作ってもちゃんと動くのはうれしいが、無駄な負荷を各サイトにかけていないか、など心配な点は残る。

カテゴリー別RSS生成に関する不具合(What's Newカテゴリーのrdfに他のカテゴリーの情報が混ざる)は解消できなかった。そこで、@smate.NETさんのカテゴリ別 RSS 作成を参考にやり直してみた。#Blogさんのやり方は、インデックスファイルとして.rdfを生成する方法だったが、こうすると、カテゴリーごとに「○○カテゴリーのRSS Indexファイル」を作ってやる必要がある。また、<$MTCategories category="○○" lastn="1"$>と指定してやっても、そのカテゴリーに、複数カテゴリーにまたがるエントリーがあると、別カテゴリーの情報がrdfファイルに紛れ込んでくることになる(Movablet Typeのバグなのだろうか?少なくとも能書きどおりの動きではないように思える)。このやり方は「複数カテゴリーをもつエントリーはない」かつ、「特定のカテゴリーについてのみRSSフィードを行いたい」場合に良い方法、と考えるべきだろう。
さて、@smate.NETさんのやりかたであるが、category archive templateを追加して、category archiveのヴァリエーションとしてrdfファイルを生成する、というもの。
> Template の中身は、先程コピーした RSS 1.0 Index と同じでよいので、ペーストして、保存(SAVE)します。
とあるが、これだとせっかくカテゴリー別につくったrdfファイルがすべて同じtitleやdescriptionを持つことになるため、channel/title,link,descriptionのあたりで以下の様に工夫している。
修正前

<title><$MTBlogName encode_xml="1"$></title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription encode_xml="1"$></description>
修正後
<title><$MTBlogName encode_xml="1"$> : <$MTArchiveCategory encode_xml="1"$></title>
<link><$MTBlogArchiveURL$>cat_<$MTArchiveCategory dirify="1">.php</link>
<description><$MTCategoryDescription encode_xml="1"$></description>
なお、linkを<$MTArchiveLink$>にしていないのは何故かというと(やってみていただくとわかるが)<$MTArchiveLink$>だと、category archiveのURLではなく、生成されるカテゴリー別rdfファイルのURLが出力されるためである。

今回、Movable Typeのテンプレートタグについては、「BloggerとMovable Typeではじめる ウェブログ入門」が大変役に立った。Movable Typeの導入時の参考に買った本が、こんなタイミングで役に立つとは思わなかった。<つまり初心者の域を脱していないな。


(ISBN: 9784798104041)
¥0

#Blogの記述を参考に、カテゴリー別のRSS生成に挑戦。サイドバーから自動的にリンクしたかったので、<$MTCategoryLabel$>.rdfが生成されるrdfファイルのファイル名と等しくなるように設定を変更。
What'sNewカテゴリーのrdfファイルだけ、なぜか他のカテゴリーの内容が混ざってしまっている。おそらく、カテゴリー名にアポストロフィが入っていることに問題があるのだろう。後日究明していくことにする。

なお、サイドバーでのsyndicate関連のリンクは以下のように記述している。

<div class="sidetitle">
Syndicate this site (XML)
</div>
<div class="side">
<a href="<$MTBlogURL$>index.rdf" title="Syndicate <$MTBlogName$>">All Entries</a>
<br />
<MTCategories>
<a href="<$MTBlogURL$><$MTCategoryLabel dirify="1"$>.rdf" title="<$MTCategoryLabel$>"><$MTCategoryLabel$></a>
<br />
</MTCategories>
</div>
rdfファイル名を指定するところでdirify="1"とすることにより、カテゴリー「What's New」のrdfファイルが(What's New.rdfではなく)whats_new.rdfとなっている。

アーカイブ

Link