December 14, 2003

Movable Type で Atom 0.3 フィードを出力させる

[ Movable Type , XML ]
Atom 0.3 が出てます。Movable Type のテンプレートもあり。

ということで、'Atom 0.3 snapshot [dive into mark]' に Atom 0.3 working draft などについて色々書いてあります。Movable Type のテンプレートdive into mark の Mark Pilgrim 氏によって公開されています。このウェブログに突っ込んでみました。

NDO::Weblog の Atom フィード
http://naoya.dyndns.org/~naoya/mt/atom-03.xml

以下、先のテンプレートを使って Atom フィードを出力するための方法です。

まずはテンプレートをダウンロードします。IE などのブラウザから普通にクリックすると、拡張子が xml なファイルに展開されていない MT の特殊タグが埋まっているので not well-formed とか怒られますから、右クリックして対象をファイルに保存とかで落とします。

次に、Movable Type のプラグインを二つほどインストールします。UTCDate Plugin for Movable TypeLastModified Plugin for Movable Type です。Atom フィードの中では時刻表記に Universal Time format を使うのと、エントリの作成日以外にエントリの修正日付も扱います。それらに対応させるためのプラグインとなります。

staggernatiion.com Plugins for Movable Type から UTCDateLastModified をダウンロードします。展開して MT の plugins ディレクトリに放り込めば OK です。

次に、先にダウンロードしておいた Atom 0.3 テンプレートを編集します。テンプレート内のコメントにもある通り、xml:lang がハードコードされており、

xml:lang="en"

になっているので、日本語を扱うならこれを

xml:lang="ja"

に変更します。(2箇所)

テンプレートをそのまま使うと、フィードに掲載されるエントリの数が 3 つしかないので、増やしたい場合は

<MTEntries lastn="3">

を lastn="15" とかに変更します。(lastn="1" の箇所が他にも幾つかありますが、そこは変更しなくて OK です。)

最後にコメントを削除します。

Movable Type の管理画面にログインし、"Template の編集" から "新しい Index Template を作る" をクリック。Template の名前は任意です。僕は "Atom 0.3" と入力しました。出力ファイル名も任意。"atom-03.xml" としました。Tenmplate の中身に先に編集したものをすべてコピペします。

リビルドして、Atom フィードが問題なく出力できれば完了です。IE などで見て、well-formed かどうか(エラーにならないか)確認します。

ここまででフィードの出力は完了、次は Atom feed autodiscovery のための設定を行います。Atom feed autodiscovery は RSS autodiscovery に同じく、フィードを処理するプログラムが HTML の URL から Atom フィードの URL を発見できるようにする仕組みです。

"Template の編集" で "Main Index" を選択、head タグの中に以下の一行を挿入します。

<link rel="alternate" type="application/atom+xml" title="Atom"
href="<$MTBlogURL$>atom-03.xml" />

atom-03.xml の部分は、先に Atom フィードを MT に追加したときにつけた出力ファイル名と同じものを入力します。保存して再構築で完了です。

Mark Pilgrim 氏と Sam Ruby 氏によって運営されている Feed Validator は RSS フィードや Atom フィードを Validate してくれるサービスですが、Atom 0.3 に対応したとのことです。また、Atom autodiscovery にも対応したそうで、先の設定を行った MT のトップページの URL を指定すれば、フィードを正しい記述によって提供できているか、チェックすることができます。

が、僕のサイトの URL を指定したところエラーになってしまいました。EUC-JP で吐いてるのがいけないのかな...。なんかそんな雰囲気。(UTF-8 で出力している RssRolling の RSS は Validation できたので。)

ちなみに Feed Validator のソースコードも dive into mark で公開されています。中身を見てみたら、Python でした。

でまあ、Atom フィードを吐いてみたのですが、Feed Validator ぐらいしかこれを解釈してくれるプログラムを知らないので、他に試しようがありません。フィードの内容は、やはり自分のウェブログから出力される情報に対応させると、このエレメントはこういう用途というのが分かりやすくていいです。プラグインを突っ込めば modified と issued が正確に扱えるというのが分かっただけでも、結構な収穫かも。

Posted by naoya at December 14, 2003 03:44 AM | トラックバック (3)  b_entry.gif
トラックバック [3件]
TrackBack URL: http://mt.bloghackers.net/mt/suck-tbspams.cgi/707
Atom Syndication 0.3 / Atomプレゼン資料とiCalenderのRDF
Excerpt: Atom Syndication Format 0.3のPRE-DRAFTが出ているな〓と思っていたら、NDO:Weblogさんでは早速AtomでFeed提供されてますね、速っ!。プラグインを二つほど入れる必要があるそうで、参考にさせていただきつつ、時間を見つけてこのブログでも対応してみようと思います。 -...
Weblog: Goodpic
Tracked: December 15, 2003 03:38 PM
Movable Type 2.65
Excerpt: 2.65リリース、同時に3.0告知。 mt-send-entry.cgi fixを内包 Atom syndication 対応 XMLRPCServer.pmのセキュリティ修正版 アップグレード手順 2.6以降のバージョンは特にスクリプトを走らせる必要はなく、単純にファイルの上書きでOKな感じ。ま、落ち着いたらバージョン...
Weblog: apeirophobia
Tracked: December 24, 2003 05:59 AM
FeedDemon1.01β版が2月リリース
Excerpt: #BLOG: FeedDemon1.01ベータ版を2004年2月にリリース予定 自宅ではRSSリーダーとしてFeedDemonを利用しつづけていたのですが、ようやくアップデートされるようです。 メインの追加機能としてATOMフィード対応が予定されているようです。 このサイトもATOMフィードに対応し...
Weblog: Blog@ZeroDimension
Tracked: January 25, 2004 09:17 PM
コメント [0件]