「自分で定義したスタイルシートを使う方法@ココログ その3」で使われている方法をベースにして、validなスタイルシート置き換えを実現する方法を思いつきました。
ということで、XHTML 的には Valid な方法でスタイルシートを置きかえることに成功した訳ですが、この方法にも欠点はあります。それは、生成される RSS を FEED Validator にかけても、Validator が validate してくれないこと。
...じゃなくて、[cdata]部分の </h2> と <h2> 。RSS リーダーが CDATA 部分を無視してくれれば問題ないんだけど、律儀に解釈してくれるRSS リーダーだと、エラーを吐きます。
index.rdf の中から問題の部分を抽出してみると...
<description> <![CDATA[収集物の記録書庫</h2> <script type="text/javascript"> <!-- var myStyleHref = "http://watcher.moe-nifty.com/memo/styles-tsupo.css"; var linkElem = document.getElementsByTagName("LINK"); for(var i = 0; i < linkElem.length; i++){ if(linkElem[i].rel == "stylesheet"){ linkElem[i].href = myStyleHref; break; } } --> </script> <h2>valid な方法で自分で定義したstylesheetに置きかえる試験 → 成功!!]]> </description>
↑ こんな感じ。ちょっとイヤ~ンですよね。
validator の方は、validator 自体の問題なんだけど、こっちが評価しようとしてもらってる RSS に問題があるのは否定できないので、やっぱりなんとかしたい。
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
この Validator、Python で書いてあるんですね。Jigsaw の CSS Validator は Java だったけど。こういうエラーを起こさせてはじめてわかる舞台裏。
投稿者: tsupo 投稿時刻: 2003年12月20日 03:32と、書いているうちに思いつきました。とりあえず、validator の方は、cdata 内の漢字部分を実体参照にすれば OK ですね。
試しにやってみます。
って、こんなことしてたら、朝になっちゃうよ (^^;
投稿者: tsupo 投稿時刻: 2003年12月20日 03:51実体参照にしても駄目でした。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 41: ordinal not in range(128)
なるほど。cdata 内は ascii じゃないと怒られるんですね。困った。
投稿者: tsupo 投稿時刻: 2003年12月20日 04:46もう1つの Validator (RSS Validator)
http://aggregator.userland.com/validator
では
Congratulations, your RSS source is valid. Good work!
と判定されたので、とりあえず、これで FIX。
疲れたので、寝ます。
Access Count:
Last Modified: Friday, 18-Apr-2008 05:27:36 JST