RSSリーダーの本文表示の違いを探る(その2)
RSSフィード本文のエンコードの仕組みについては前回の通りですが、ここでひとつ疑問がわきました。それはサイトによってHTMLタグがあるものとないものが混在するのはなぜか?という点についてです。これはMyBlogListリーダーをご覧になったことのある方ならご存知と思います。
本テンプレートユーザの方は Movable Type をお使いなので一律同じ結果、つまりHTMLタグが常に表示されるか、あるいは常に表示されないか、のどちらか一方になるだろうと思って見比べてみたところ、それでもタグありとタグなしの表示が混在していました。
今回はこの原因について探ってみました。たいした結果ではありません。
実は最初、私が試したサンプルは本文に
本文にHTMLタグを含んでいません。本文にHTMLタグを含んでいません。
本文にHTMLタグを含んでいません。
と書いて、これをRSSフィードにすると
<description>本文にHTMLタグを含んでいません。本文にHTMLタグを含んでいません。本文にHTMLタグを...</description>
という結果になることを期待しました。ところが実際に生成してみると、
<description><![CDATA[<p>本文にHTMLタグを含んでいません。本文にHTMLタグを含んでいません。<br />
本文にHTMLタグを含んでいません。</p>]]></description>
となりました。これは明らかに Mobable Type の Convert Line Breaks 機能により <p> や <br> タグが付与されたもので、たしかにMyBlogListリーダーではここから "<![CDATA]" と "]]>" を除いた部分が表示されていた記憶があります。
ではタグが付与されないパターンはどうやって生成されているのでしょうか?
ここで小粋空間の index.rdf(抜粋) を見てみると
:
<item rdf:about="http://www.koikikukan.com/archives/2005/01/25-233913.php">
<title>Movable Typeの脆弱性と対策</title>
<link>http://www.koikikukan.com/archives/2005/01/25-233913.php</link>
<description>ほぼ引用ですいません(+出遅れてます)。 【重要】 Movable Typeの脆...</description>
<dc:subject>3.121-ja</dc:subject>
<dc:creator>yujiro</dc:creator>
<dc:date>2005-01-25T23:39:13+09:00</dc:date>
</item>
:
と、HTMLタグは付与されていませんでした(他のエントリーについても同様です)。私は index.rdf のテンプレートをカスタマイズしていませんし、そもそも積極的にカスタマイズするページでもありません。
両者の違いについて内部処理で表示が切り替わる仕組みがあるのか?とも考えましたが、答えは簡単でした。
小粋空間で用いているindex.rdf テンプレート(抜粋)では該当部分に
<description><$MTEntryExcerpt encode_xml="1"$></description>
と MTEntryExcerpt が設定されており、実験で用いた Movable Type 3.121(新規インストールで利用)の index.rdf テンプレートには
<description><$MTEntryBody encode_xml="1"$></description>
と、MTEntryBodyが設定されていました。
つまり、Movable Type3.1x で index.rdf テンプレートの description タグのテキスト部分に MTEntryBody が用いられるようになったことが、表示に違いが生じていた原因と考えられます。小粋空間は3.01からのアップデートだったため、旧テンプレートの設定である MTEntryExcerpt が引き継がれていた、という訳です。
- Movable Type でコメント用 RSS フィードを出力する
- RSSリーダーの本文表示の違いを探る(その3:NoCDATAの利用)
- RSSリーダーの本文表示の違いを探る(その1)
- Feed Validator警告除去(Onclick属性削除プラグイン)
≫ RSS2.0のdescriptionにHTMLタグが表示されてしまう! from Tatuya's Blog
RSS2.0対応のRSSリーダーで自分のサイトを見ました。 ありゃま、リンクなどのHTMLタグが概要(=description)として出力されてしまっていました... [続きを読む]
≫ 【RSS】エントリー丸ごとフィードされるのをなんとかしたい。 from 特別-the blog-
前々から気になりつつも手をつけなかった「エントリー丸ごと全文がフィードされてるぜウヒョー!」を修正した。 [続きを読む]