RSSリーダーで段落整形させて表示させる方法

 カテゴリ:

RSSリーダーを使っていると、段落整形がされて画像も表示されるサイトと、エントリー本文の概要テキストだけがじみーに表示されるサイトの、2つがある事に気づく。もちろんmdのサイトは後者。で、調べてたどり...

RSSリーダーを使っていると、段落整形がされて画像も表示されるサイトと、エントリー本文の概要テキストだけがじみーに表示されるサイトの、2つがある事に気づく。もちろんmdのサイトは後者。で、調べてたどり着いたのが、NDO::WeblogさんのRSSリーダーで段落整形させて表示させる方法です。

以下、覚え書きのため引用させていただきます。

MovableType 管理画面より『Template の編集』を選んで『RSS 1.0 Index』を選択します。手始めに、rdf:RDF 要素の属性に xmlns:content="http://purl.org/rss/1.0/modules/content/" の一文を追加します。(これは Content モジュールのXML名前空間の宣言です。) 一字一句間違えないように、注意して入力しましょう。コピペがいいと思います。

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/">

次に、description 要素と dc:subject 要素の間に以下の一文を挿入します。太字で表示している部分が新たに追加される箇所です。長いので改行してますが、実際には一行で入力します。(改行が入っていても問題はないと思うのですが。)

<description><$MTEntryExcerpt encode_xml="1"$></description>
<content:encoded><$MTEntryBody encode_xml="1"$>
<$MTEntryMore encode_xml="1"$></content:encoded>
<dc:subject><$MTEntryCategory encode_xml="1"$></dc:subject>

encode_xml オプションを付けるのを忘れないようにして下さい。これで、content:encoded 要素として記事の全文が出力されるようになります。(CDATAセクションとして扱われます。) あとは save して rebuild をかけてやれば完了です。不安な方は RSS Validator で文法チェックしてみましょう。

作業が完了したら、自分のサイトの RSS を SharpReader 等で読み込ませてみてください。整形されて表示されると思います。RSS を直接見てもらえば分かるように、content:encoded 要素には HTML タグがそのまま入っています。SharpReader や NetNewsWire などは、content:encoded 要素があった場合、description 要素よりもそちらを優先して読み込み整形して表示してくれます。

で、やってみた。おー!。きちんと整形されている。mdのRSSリーダーは「Headline-Reader」ですが、ちゃんと画像が出てくるようになりました。感謝!。