印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
MovableType RSS 1.0 にスタイルシートを適用する

RSS 1.0 をフィードするファイル index.rdf にスタイルシートを適用することができるという。スタイルシートを使うと、ソースがそのまま表示されるのではなく、ちゃんと整形されて表示される。ただし、<![CDATA[ ... ]]> で囲まれた部分はタグがそのまま出てしまう。

■ ■ ■

index.rdf をブラウズすると、ソースがそのまま表示される。これは機械的に処理されるものなので「見てくれ」はどうでもいいものではあるが、見かけがいいことに越したことはない。

スタイルシートを適用しない場合、Mozilla で見ると一番上に次のメッセージが表示される。

This XML file does not appear to have any style information associated with it. The document tree is shown below.

つまり、「この XML ファイルには、適用するスタイル情報が見つかりません。ドキュメントツリーをそのまま表示します」ということで、気になっていた。調べてみると、ADP: RSS用のスタイルシート に紹介されていた。

説明の通りでうまくいく。RSS 1.0 Index テンプレートを編集し、2行目に赤色部分を追加する。

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<?xml-stylesheet href="<$MTBlogURL$>styles-rdf.css" type="text/css"?>

スタイルシートは W3C のスタイル を用いるのが正式だが、手を加えなければならない箇所が多いので ADP: RSS用のスタイルシート を使わせて頂くことにした。

  1. styles-rdf.css をコピーする
  2. MovableType の編集画面で「新しいインデックステンプレートを作る」をクリック
    • テンプレートの名前: Stylesheet for RSS 1.0 (何でもよい)
    • 出力ファイル名: styles-rdf.css
    • 「インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する」のチェックを外す
    • テンプレートの中身: コピーした styles-rdf.css を貼り付ける
  3. 「テンプレートの中身」を編集
    • 最初の行の文字セットの設定を次のように変更
      @charset "<$MTPublishCharset$>";
    • <![CDATA[ ... ]]> で囲まれた部分はタグがそのまま出てしまうので、 これが含まれる <content:encoded> の表示をまるごと抑止することにして、次を追加する (ただし、これは nlog(n): RSS テンプレートにサイトのロゴと「続き」へのリンクを追加する で必要になったためで、デフォルトでは不要なもの)
      item>encoded {
              display: none;
      }
  4. 保存して再構築

Apache のコンフィグレーションファイル(VineLinux なら /etc/httpd/conf/httpd.conf) には、nlog(n): RDF のメディアタイプ で行った MIME タイプ (.rdf の拡張子に application/xml を設定) を追加すればよい。

Posted by n at 2004-10-10 18:43 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?