記事本文
Movable Type の Atom Feed テンプレートをチェックしてみよう
drry+@-> Movable Type のデフォルト Atom フィードテンプレートを駄目出しを読んで、自分のところの Feed はどうだったかなあと思って確認してみると、 <$MTDate$> をそのまま使ってしまっていました。 私は Feed のテンプレートも自分なりのカスタマイズをしていたのですが、 id の部分については見落としていました。 早速修正をして、年次による恒久性の消失に対応対応。
また、以前は Tagwire Plugin を用いてタグ機能を実現していたのですが、 Movable Type 3.3 では標準でタグ機能が実装されていたので、そちらに乗り換えていました。
標準のタグ機能では <$MTTagName$> テンプレートタグでタグ名を指定するのですが、 Tagwire Plugin によるタグ機能では <$MTTag$> テンプレートタグによってタグ名を指定します。
よって、標準タグ機能に切り替えた際に Atom Feed テンプレート内の
<category term="<$MTTag encode_xml="1"$>" />
部分を
<category term="<$MTTagName encode_xml="1"$>" />
に書き換えておくべきだったのですが、それも見落としていたために category 要素の term 属性値が空っぽのままになっていましたので、それも併せて修正しました。
hxxk.jp の Atom Feed テンプレートソース 20061127 版
良い機会なので、現在使っているテンプレートのソースを公開しておきますね。 Feed 関係についてはあまり厳密にチェックしていないので、もし「もっと良い書き方があるよ」という場合は是非お知らせください。
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><$MTBlogName remove_html="1" encode_xml="1"$></title>
<link rel="alternate" type="text/html" href="<$MTBlogURL encode_xml="1"$>" />
<link rel="self" type="application/xml" href="<$MTBlogURL$>feed/atom" />
<link rel="service.post" type="application/xml" href="<$MTCGIPath$><$MTAtomScript$>/weblog/blog_id=<$MTBlogID$>" title="<$MTBlogName encode_html="1"$>" />
<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<MTArchiveList archive_type="Monthly" sort_order="ascend" lastn="1"><$MTArchiveDate format="%Y"$></MTArchiveList>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>
<updated><MTEntries lastn="1"><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></MTEntries></updated>
<MTIfNonEmpty tag="MTBlogDescription"><subtitle><$MTBlogDescription remove_html="1" encode_xml="1"$></subtitle></MTIfNonEmpty>
<generator uri="http://www.sixapart.com/movabletype/">Movable Type <$MTVersion$></generator>
<MTEntries lastn="15" sort_order="descend">
<entry>
<title><$MTEntryTitle$></title>
<link rel="alternate" type="text/html" href="<$MTEntryPermalink encode_xml="1"$>" />
<link rel="service.edit" type="application/xml" href="<$MTCGIPath$><$MTAtomScript$>/weblog/blog_id=<$MTBlogID$>/entry_id=<$MTEntryID$>" title="<$MTEntryTitle$>" />
<id><$MTEntryAtomID$></id>
<published><$MTEntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></published>
<updated><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></updated>
<summary><$MTEntryExcerpt remove_html="1" encode_html="1"$></summary>
<author>
<name><$MTEntryAuthorDisplayName encode_xml="1"$></name>
<MTIfNonEmpty tag="MTEntryAuthorURL"><uri><$MTEntryAuthorURL encode_xml="1"$></uri></MTIfNonEmpty>
</author>
<MTEntryTags case_sensitive="1">
<category term="<$MTTagName encode_xml="1"$>" />
</MTEntryTags>
<content type="html" xml:lang="<$MTBlogLanguage ietf="1"$>" xml:base="<$MTBlogURL encode_xml="1"$>">
<$MTEntryBody encode_xml="1" convert_breaks="0"$>
<$MTEntryMore encode_xml="1" convert_breaks="0"$>
</content>
</entry>
</MTEntries>
</feed>

