朝顔日記

rNote で application/xhtml+xml

2004-08-16

rNote は 動的生成なので、ページを application/xhtml+xml として送出するのも容易だろうとちょっといじってみた。書いておかないと忘れて rNote がバージョンアップしたときに泣きを見るので自分用にメモ。

まずは、rNote の設定ファイル、rnote_config.phpに、以下を追加。

define(CONTENT_TYPE_XHTML,"Content-Type: application/xhtml+xml; charset=".SITE_CHARSET);

次に、rnote.php のhtmlを生成する Build HTML の1500行目付近の、if($_GET['c']=='xml') header(CONTENT_TYPE_XML); else header(CONTENT_TYPE_HTML); というところを以下のように書き換え。


if($_GET['c']=='xml'){
  header(CONTENT_TYPE_XML);
}else{
  if(eregi("application/xhtml\+xml", $_SERVER['HTTP_ACCEPT'])){
    header(CONTENT_TYPE_XHTML);
  }else{
    header(CONTENT_TYPE_HTML);
  }
}

これで、application/xhtml+xml を解する UA には、そのように、そうでない UA (インターネットエクスプローラとか)には、text/html として送出するようになるはず。

注意点としては、記事だけでなくスキンも well-formed でないと xml パースエラーで表示できなくなります。たとえば、html_body.skin などは、デフォルト状態だとファイルの先頭にスキンのコメント文が書いてあるわけですが、そのままだと xml 宣言の前に空行が入るのであっさり xml パースエラーとなります。あと、writeback.skin の date 属性のダブルコーテーションのエスケープ忘れ(何)とか。掲示板用の html_body.skin や html_item.skin にも input 要素周りでいくつかあるのでそこらも要チェック。

「rNote で application/xhtml+xml」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2004/08/diary_040816a.html