そろそろ新しいバージョンを試してみないかブラザー
以下に記載のものはこちらに更新版が用意されました。
以前からコソコソと公開し散らかしていた新バージョンのプロトタイプですが、それなりな感じになってきた気がするので。
というか、さすがに2ヶ月もここのエントリーを書いてないと死んだのかと勘違いされる気がするので。
これはPC2Mの新バージョン候補であり、現在の公開リリースに対する修正や改善もなされてはいますが、なによりこのバージョンでは、HTMLの処理部分が抜本的に改められており、これにより現在の公開リリースでは支障のないウェブページが、このバージョンでは利用できないかもしれないという困ったちゃんです。そういうわけで、スキモノのかたに試してもらって、支障のあるウェブページを発見したらばビシバシ教えて欲しいなと。なお、こちらでサクっとお試しいただけます。
» pc2m-0.9.20rc_060818.zip 0.9.20RC1 (beta) released 2006/08/18
※このバージョンでは新たにPEARのXML_HTMLSax3が必要です(pearpack.zipを更新してあります)。
なにこれ?
HTMLの処理は、これまでは正規表現によるパターンマッチングで済ませてきたわけですが、ワールドワイドウェッブの悪しき伝統により、インターネット上には相変わらずズサンなマークアップが蔓延っており、未だに止む気配がないどころか、著名なIT関連企業のウェブサイトですら、「旧世代のウェブブラウザへの配慮」を口実に、しばしばどーしようもないマークアップが見られる今日この頃。パターンマッチングでこうしたズサンなマークアップと格闘するにはどーしても限度があり、一方iモードやPC用の主なウェブブラウザとは異なり、auやVodafoneに搭載されているUP.BrowserのようなWML/XHTML用のブラウザは、キャリアのゲートウェイがある程度変換してくれるとは言え、ズサンなマークアップに対して本来はあまり寛大ではありません。
てなことで、受信したHTMLをいったん整形式のXML文書に再構築できないかと思ったわけです。そうすりゃ、パターンマッチングによる後処理が必要だとしても随分楽チンだし、コードもスッキリするじゃないかな松木さん。
マークアップの補正処理には、PHPではPECL版Tidyとかの拡張モジュール(追加インストールが必要なバイナリ)が利用できるわけですが、残念ながらこれらは一般的なレンタルサーバのPHP環境で用意されているものではなく。てゆうか、ここの鯖にもなく。
しょうがなくあれこれ試行錯誤を繰り返した結果、マークアップの補正処理を行うクラスライブラリを作ってみたので、それを組み込んだのがこのバージョンというわけでござります。
このクラスライブラリの詳細は、HTMLを整形式のXML文書に修正するPHPクラスをご覧ください。単独でのご利用も想定して、リンク先にはこのクラス単独の配布パッケージを用意しており、これにはシンプルなサンプルアプリケーションと、HTMLに対して汎用的に利用可能な、XHTML 1.0 TransitionalのDTDに基づいた構成ファイルが含まれています。
てなことでどーなったかというと、整形式のXML文書を吐くようになってます。多分なってるんじゃないかな。疑うならテキトーなXMLパーサに出力を喰わしてみやがれ。わかりやすく見た目で言うと、色の再現性が以前よりきちんとしてたり、下部メニューにまで装飾が及んでなかったり。まあ、そういうことです(ただし、文書型(DOCTYPE)はXHTML Mobile Profileとなっていますが、「整形式のXML文書」と断ってるように、DTDに照らしてvalidかというと、そこまでの補正は致しかねております)。
HTML処理に関する主な仕様変更
- 従来はOBJECT|EMBEDをリンクで表示してましたが全く除去してしまうことにしてみました。
- 従来はH1~6をPに置き換えていましたが、これをそのまま残すようにしてみました。
- CENTERなど、従来は除去していた幾つかのタグを残すようにしてみました。
- 従来は2chのカキコフォームのみ直アクセスでしたが、UTN属性があればなんでもかんでも直アクセスにしてみました。
HTML処理に関する既知の不具合
細かい説明は端折りますが、以下の例のようにオーバーハングしてやがる入力フォームは機能しなくなります(他のタグでも、オーバーハングについては同様の問題が生じますが、特にこのパターンはFORM要素にありがちで実害もあからさま)。「ここのフォーム動かなくなったよ」という場合はこのパターンを疑ってください。
<table>
<tr>
<td>
<form action="search">
<p><input name="query"></p>
</td>
</tr>
</table>
<p><input type="submit"></p>
</form>
DISCLAIMER
XML準拠も結構だが、めぼしいメリットがあるわけでもないのに「メモリ喰います、遅くなってます、利用できてたものができなくなります」じゃあ、ユーザ無視のW3Cオタのオナニーじゃねえか、さっさと元に戻しやがれこの厨房、などのご意見ご要望は、ログを採ってないので管理人すらカキコ者を特定不能の、完全無欠の匿名掲示板へどーぞ。
2006/08/18
トラックバック
このエントリーのトラックバックURL:
http://www.rcdtokyo.com/mt/mt-rcdtokyo5428-tb.cgi/771
コメント
http://ax-m.jp/
モバジラ用スクリプトに採用されたっぽいですね。
これは稼動実績?になるのかな?
おめでとうございます。
こっちも自鯖においてzero3esからのブログ巡回に使わせてもらってます。はい。
Posted by 名無しさん at 2006/08/24 23:02
みなさんからのタレコミで初めて知った作者なのでありましたw>>モバジラ
いいなあzero3es。実は旧型Pocket PCユーザなので、激しく欲しいんですけどね。おかげさまでzero3他のWindows Mobile端末の対応はかなりいい加減な感じになっちゃってるので、「ここんとこはもうちょっとどうにかならんのかい」という点がありましたら、是非お気軽にお申し付けください。
Posted by ucbさん at 2006/08/25 21:19