趣味のブログ - 201010のエントリ
他のモジュールのフィードを見ていたら、© は、htmlspecailchars で © と展開されていれば問題なく配信され、フィードリーダ側では © と表示されることが分かりました。
「d3blog の Atom フィード」のコメントで書いた、エンティティを定義する方法でも若干問題があることが判明しました。
ひとつは、IE8 では DTD 付きのフィードを表示できないことです。エンティティは DTD で定義するしかないので、IE8 ではどうやっても atom を表示できません。もうひとつは、rss/rdf でも <description>...</description> 中に xml の組み込みエンティティ以外の html 特殊文字があるとエラーになってしまうことです。
んなわけで、結局 rss.php, rdf.php, atom.php をハックして、html 特殊文字を nnn; に変換することで対処することにしました。
ひとつは、IE8 では DTD 付きのフィードを表示できないことです。エンティティは DTD で定義するしかないので、IE8 ではどうやっても atom を表示できません。もうひとつは、rss/rdf でも <description>...</description> 中に xml の組み込みエンティティ以外の html 特殊文字があるとエラーになってしまうことです。
んなわけで、結局 rss.php, rdf.php, atom.php をハックして、html 特殊文字を nnn; に変換することで対処することにしました。
d3blog では RSS/RDF/Atom でコンテンツのフィードが可能ですが、Atom は IE8/Firefox/Chrome/Opera いずれもエラーになって内容の表示ができません。調べてみたところ、
の © を表示するための © が原因でした。
<rights>Copyright © 2010</rights>
の © を表示するための © が原因でした。
d3blog のメインコンテンツのタイムスタンプは、2010年9月5日9時5分なら 2010-9-5 9:05 と日付がハイフン区切りで月日時はゼロサプレスです。アーカイブ(過去ログの検索)の掲載日は、2010/09/05 とスラッシュ区切りのゼロ付きで、統一されていません。
このサイトではタイムスタンプフォーマットを年月日はハイフン区切りで、月日時のゼロサプレスはしないように統一しているので、d3blog もこれに合わせたくなるのが人情。ってことで、d3blog のメインコンテンツ及びアーカイブのタイムスタンプを変更する方法です。
このサイトではタイムスタンプフォーマットを年月日はハイフン区切りで、月日時のゼロサプレスはしないように統一しているので、d3blog もこれに合わせたくなるのが人情。ってことで、d3blog のメインコンテンツ及びアーカイブのタイムスタンプを変更する方法です。
「Google ニュース検索結果の RSS/ATOM フィード」で Google ニュースの RSS/ATOM の取得方法を書きましたが、Google ニュースの RSS/ATOM はちょっと行儀が悪いようで、d3pipes ではフィードの形式を自動認識してくれません。このため、d3pipes でヘッドライン表示するには、ちょっと手作業による修正が必要になります。