rNote の微改造とか
2005-02-04
一頃は、対応した UA には application/xhtml+xml で送出していたこの日記ですが、最近は text/html で送出していました。というのは、リンク元やトラックバック、ツッコミの内容などの URI に & が含まれていたりすると xml パースエラーでページが表示出来ない場合があったからです。rnote.php をサラッと見た限りではどこをいじればいいのかわからなかったので、text/html にしていたわけなんですが、ちょっと気合を入れてみてみることにしました。んで、改造しところのメモ。
rnote.php のバージョンは、0.9.7.5 です。オリジナルの436行目付近の autolink 関数のあたり。
function autolink($url){ $url = preg_replace(LINK_REP_STR,"<a href=\"\\1\\2\">\\1\\2</a>",$url); $url = preg_replace("/&([^(amp)])/","&\\1",$url); return $url; }
これで、ツッコミやトラックバック回りは大丈夫ぽいですが、これだけではリンク元がうまく行きません。1201行目付近を以下のように。
while($tagstr=SkinTagChk('Ref_Data',$a,$opt)){ $rep=''; if(($bRefExist)&&(isset($opt['fmt']))) $rep=WriteBack_Ref($ref_data,$opt['fmt']); $a=str_replace($tagstr,$rep,$a); $a = preg_replace("/&([^(amp)])/","&\\1",$a); }
これで、多分大丈夫な気がするけど、自信がないのでリンク元の表示は止めました。:p)
ちなみに、application/xhtml+xml で送出する方法は rNote で application/xhtml+xml に書いたとおりです。
あと、この件とは関係ないですが、オリジナルの155行目を以下のようにしています。
if(preg_match('/^(http|ftp|mailto|#|\/)/s',$tmp[1])){ // exclude
オリジナルだといわゆるページ内リンクができないようだったので。
どうもうまくいっていなかったので、考え直しました。
「rNote の微改造とか」へコメントをつける
- この記事の永続的 URI ならびに トラックバック ping URI
- http://diary.noasobi.net/2005/02/diary_050204a.html