6月7日

2011/6/7作成

jawptoolの開発。とりあえずlint機能は一旦コードフリーズすることにする。いつまでもだらだらと開発してるのはよくない。そこそこの機能で、まずは公開できるように整えることを優先することにする。それから、機能アップをはかっていこう。

入力ファイルはXMLなんで、テキスト中の文字列は当然にエスケープされてる。だから、アンエスケープしてやらなきゃならない。

エスケープというのは、XMLにはいくつか文法上で使用している記号があるので、その記号は直接記述できないという制限がある。具体的には<、>、&、"の四つが基本。これをデータとして記述するときは、それぞれ&lt;、&gt;、&amp;、&quot;というようにする。これがエスケープ。で、プログラム側ではエスケープを元に戻してやらないと本来のテキストにならない。これがアンエスケープ。基本はさっきの四つだけなんだけど、他にもたくさん定義されている。&と;の間が英文字になっているものを文字実体参照、数値になっているものを数値文字参照と呼ぶ。

CGI.pmに unescapeHTML()なんて関数があるのでこれでいいやと思ったら、数値文字参照は置換してくれないのね。仕方が無いのでそこは自前で変換。が、ウィキペディアの出力するテキストには「&amp;lt;」なんて謎な二重エスケープされたものとかある。なんでこうなってんの?ともあれ、仕方が無いので、2回アンエスケープ処理をする。

lint機能のデバッグがだいたい終わったかな。まだ手を入れたいところはなくはないけど、きりがないからとりあえずやめとこう。まだ、他の機能を実装しなきゃならんし、テストも全然書けてないし。


あおやぎのさいと2.0 新人うぃきめでぃあん日記