個別記事

RSS 用の XSL を公開してみる

この記事が属するカテゴリー
Movable Type web&blog

MT のデフォルトのテンプレートに、Syndicate this site (XML) ってリンクがあったりして、良く分からない人がクリックしちゃうと XML のソースが表示されて、なんじゃこりゃってのがあるかも知れない。そこで当サイトでは、ブラウザで閲覧してもそれなりに見えるように、浅い知識ながら簡単な XSLT で変換していたりするんだけど、何となくその XSL ファイルを公開してみようかなって今突然思いついたんで、大した物じゃない(いや、マジで)けどご入り用なら如何でしょうかとか言ってみたりして。

ダウンロードして解凍すると、RSS1.0、RSS2.0、Atom0.3 それぞれに対応した XSL ファイルと共通の CSS ファイルが入っている。

atom.xsl
Atom0.3 用の XSL ファイル
rdf.xsl
RSS1.0 用の XSL ファイル
rss.xsl
RSS2.0 用の XSL ファイル
rss.css
各 Feed を XSLT で変換したものに適用する CSS ファイル(共通)

MT での適用方法は至って簡単。適用させたい各 Feed のテンプレートの XML 宣言の下に一行追加。

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<?xml-stylesheet href="<$MTBlogURL$>hoge.xsl" type="text/xsl" media="screen"?>

hoge.xsl の部分は、その Feed に対応した XSL ファイルを指定する。各 Feed と同じディレクトリに XSL ファイルと CSS ファイル(お好みのスタイルに変更)をアップして完成。あ、ちなみに XSLT で変換した XML をマック IE で開こうとすると、100% 死亡します:-(

実はここからが本題

さて、実はここからが本題なんだけど、Atom はエントリーの内容部分が全てエスケープされていて、それを回避するために、disable-output-escaping="yes" と指定してる。んが、Mozilla 系のブラウザだと認識されない。どうやら、Bugzilla にも上がっているらしいんだけど、今後も修正されない模様。何か解決方法ないですか?って、これが言いたかったわけです。(前置き、長っ!)

Atom 用の XSL ファイルを更新しました。Mozilla 系ブラウザでもエスケープされずに表示されるようにスクリプトを埋め込んでみた。

2006 年 3 月 30 日に Feedbunber に移行したため、現在、当サイトではこの XSLT を使用していません。ちなみに、適用した際のサンプルは下記のようになっています。

2005-05-28T10:41:24+09:00 | コメント (10) | トラックバック (3) |はてなブックマーク

関連性が高いエントリー 5 件

トラックバック

このエントリーのトラックバックURL:
http://WWW.lucky-bag.com/cgi/mt/mt-tb.cgi/237

このリストは、次のエントリーを参照しています: RSS 用の XSL を公開してみる:

nJOY BLOG さんからのトラックバック
RSS/Atom生成モジュール ver1.32
BlognPlus 用モジュール「Feed Generator」をバージョンアップしました。 ■ Ver1.28 → Ver1.32 の変更点各フィードに... [続きを読む]
2005年11月01日 23:18
山旅ブログ さんからのトラックバック
山旅アンテナ
トップページ のリンク集部分に、 山旅アンテナ を追加しました。 RSSフィード... [続きを読む]
2006年03月24日 07:09
つぶやき。もしくは独り言。 さんからのトラックバック
各FEED(ATOM0.3, RSS1.0, RSS2.0)を XSLT で見栄えよく
Lucky bag::blogさんの記事を参考にして、 XSL StyleSeet を使って RSS その他のリンクを Webブラウザで開いたときにきれい... [続きを読む]
2006年07月15日 23:00

コメント

(o) さんからのコメント [TypeKey Profile Page]

自力ではないですが解決方法の一つを見つけました。

私は全部FeedBurnerにお任せしています。私の場合、RSS 2.0でcontent:encodedに全文突っ込んでいてatom/contentと同様にencodeされているわけですが、http://feeds.feedburner.com/ogawa をFirefoxで見てもdecodeされた状態で表示されています。で、e-luckさんの記事を読んでいったいどうやっているんだろうなと思っていたのです。

が、変換用のXSLT ( http://feeds.feedburner.com/~d/styles/rss2full.xsl )を読んでみて納得しました。一応disable-output-escaping="yes"してあるのだけどdecodeできなかった場合、Javascript ( http://www.feedburner.com/fb/feed-styles/xsl_mop-up.js )を読み込んでdecodeをやっています。

2005年06月06日 13:47
e-luck さんからのコメント [TypeKey Profile Page]

ぅわー、わざわざ調べて頂いちゃってスイマセン。

そう言えば、Bugzilla の方にも、xsl:vender を分岐の条件として、Transformiix(mozilla の xslt プロセッサ)であればゴニョゴニョって感じの Javascript を使った方法がコメントされていたような。

やはり Javascript を使うしかないんすかね。

2005年06月06日 14:48
e-luck さんからのコメント [TypeKey Profile Page]

つう事で、とりあえず Javascript で回避してみました。

2005年06月06日 15:52
ななみ さんからのコメント

はじめまして  ななみ と申します。
RSS の XSL を探していて 先週 この記事を拝見し XSL と CSS のセットをいただきました。 ありがとうございました。

おかげさまで RSS 2.0 については CSS を少し書き換えて ブログの見た目と似た感じに作ることが出来ました。
これで 「フィードって 何?」 という方がクリックなさっても 違和感無く見ていただけるようになり とても嬉しく思っております。

ただ ちょっと気になる点があるのですが 教えていただけませんでしょうか。
まず カテゴリー名の前の数字を消すことが出来ません。
並び順を変えるために数字を書き加え ブログの方では CategoryDescription と書き換えることで解決できたのですが RSS では どうすればよろしいのでしょうか?

もう一つ 記事の地の文の中に 画像などへのリンクだけが ソースのまま表示されるのが気になります。 ポップアップ画像の場合など 長くなりますので 特に気になります。
ソースのままの部分だけ 消す(非表示にする)ということは 出来ませんでしょうか?

Atom については上手く出来ませんが head にリンクもありますので フィードの部分には RSS 2.0 だけにしておいてもいいかな・・・と 考えています。

長々と書き込んで 申し訳ありません。
教えていただけると ありがたく存じます。
どうぞ よろしくお願いいたします。

2006年11月24日 21:04
e-luck さんからのコメント [TypeKey Profile Page]

>>ななみ さん
はじめまして。XSLT と CSS のご利用ありがとうございます。
カテゴリーについてですが、MovableType の管理画面にて、RSS 2.0 用のテンプレートを編集して、同じように MTEntryCategory を MTCategoryDescription に置き換えれば良いのではないでしょうか。見当違いなことを言っていたらスイマセン。

同じく、画像のリンク部分も消したいという事であれば、テンプレートを編集すれば良いかと。

2006年11月27日 15:47
ななみ さんからのコメント

お返事 ありがとうございました。

早速 MTEntryCategory を MTCategoryDescription に書き換えてみましたら・・・
「テンプレート RSS 2.0 の再構築に失敗しました。 MTEntries タグでエラーが発生しました。 MTCategoryDescription タグでエラーが発生しました。 $MTCategoryDescription$ タグを適切な場所で使っていません。」 と出ました。

どうも 無理な望みだったようですので カテゴリー名の表示自体を諦めて そっくり削除いたしました。
記事の中のリンクの方は どう考えても消し方がわかりません。
ちょっと残念ですが RSS 2.0 については これくらいにしておこうかと考えています。

それより 私も FeedBurner にしてみようかと思い始めています。
うまく出来るかどうか分かりませんが ちょっと頑張ってみます。
また 行き詰ったら お邪魔するかもしれません。 その時は よろしくお願いいたします。
どうも ありがとうございました。

2006年11月27日 23:17
ななみ さんからのコメント

しつこくて 申し訳ありません。

昨夜 書き込ませていただいた時 MTタグをそのまま書いて「確認」しましたら タグの部分だけ消えてました。
その時は 「あら大変」と思い 前後の不等号(?)を消してみると現れましたので 「やれやれ」と思っただけでした。

今朝になって ようやく気がつきました。 「あれこそ 私が望んでいることだった。」
思いつく言葉であれこれ探してみたのですが 「掲示板などの安全のため」ということは分かりましたが 具体的な方法(どのファイルの どのあたりに どのように書くか)を 見つけることができません。

どんな言葉で探せばいいのでしょうか?
そのようなことを詳しく解説されているサイトさんを ご存知ありませんでしょうか?
お手数をかけますが 教えていただけるとありがたく存じます。
そうぞ よろしくお願いいたします。

2006年11月28日 21:01
e-luck さんからのコメント [TypeKey Profile Page]

すいません。コメントではタグが使用できないことを明記していませんでしたね。

コメントで HTML 等のタグを使えなくするには、MovableType の設定でできます。
管理画面の「設定」内、「コメント/トラックバック」にある「HTMLの利用を許可」のチェックを外せば良いだけです。

2006年11月29日 09:59
ななみ さんからのコメント

「いろいろお手数をかけましたが 私も FeedBurner に移行いたしました。」 と ご報告したいと思い 昨夜がんばったのですが 中途半端な状態になりました。 IE6 では見えているのですが Firefox1.5 と Netscape7.1 では ドキュメントツリーしか見えません。 どうしてなのでしょう?

作業の手順は 新しい名前で xml を作り そのアドレスで FeedBurner に登録してアドレスを貰いました。 その時点では きちんと見えていたのです。 ヘッダの RSS2.0 と Atom へのリンクを書き換えて その二つのテンプレートの「自動的に再構築」 のチェックを外しました。
昨日の日記を書き込んだ後 見えなくなったのですが なぜか しばらくすると IE6 だけ見えるようになりました。 どうしてなのでしょう?

htaccess に Redirect などを書かなければならないのでしょうか?
サイトの方では htaccess を作って SSI の include やエラーページを使っているのですが そのファイルに書き加えるのでしょうか?
ブログは コンテンツの一つという位置にありますので もう一つ htaccess を作ってブログのフォルダーにアップするのでしょうか?

昨夜から ?マークで一杯になった頭が混乱して 立ち往生しています。
私は どうしたらいいのでしょう?

2006年11月30日 16:25
ななみ さんからのコメント

Firefox でも見えるようになりました。 消えていた 「ライブブックマークを追加」 のマークも 見えるようになり きちんと機能しているようです。 
htaccess を作って ブログのフォルダーにアップするのに 随分長く迷いましたが ようやく出来て ホッとしております。

xsl から FeedBurner まで いろいろ知ることが出来て とても嬉しく思っております。
本当に ありがとうございました。
長々とお騒がせして 申し訳ありませんでした。

2006年12月01日 22:25

コメントしてください

コメント内ではタグは一切使えません。コメント内にてタグを表記したい場合は、お手数ですが、文字実体参照を利用して < を &lt; 、> を &gt; とそれぞれ置き換えてください。




保存しますか?


(V) (P)