2003年12月20日

続・ココログのスタイルシート

[カテゴリ: 各種メモ ]

自分で定義したスタイルシートを使う方法@ココログ その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。
疲れたので、寝ます。

投稿者: tsupo 投稿時刻: 2003年12月20日 05:15


Access Count:
Last Modified: Friday, 18-Apr-2008 05:27:36 JST

Google