[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
form (was: search engines and w3m-form)
>> On 25 Apr 2001 12:33:10 +0900
>> 「土」== tsuchiya@pine.kuee.kyoto-u.ac.jp (TSUCHIYA Masatoshi) said as follows:
土> 現時点の emacs-w3m の form 対応は極めて不完全な状態のまま、実装が中断
土> している状態ですので、実際の使用には到底耐えられないと思います。
現時点の emacs-w3m の form 対応は「w3m 本体をできるだけ改造しない」こ
とを主眼として設計されています。そのため、以下のような、面倒な手順で動
作します。
(1) w3m -dump_extra URL で該当ページのソースを取得
(2) w3m-form-parse-region 関数が form についての情報だけを解析
(3) w3m -halfdump を呼び出し、具体的な rendering を実行
(4) w3m-fontify-forms 関数が、w3m -halfdump の結果と
w3m-form-parse-region の結果を付き合わせて、不足している情報を回
復する
次に、不足している情報について具体的に説明します。例として、以下のよう
な form を処理する場合を考えます。
# なお、ここで不足している情報と言っているのは、emacs-w3m から利用する
# 立場から見ると不足しているということです。
Title: FORM test
この時、w3m -halfdump を呼び出すと、以下のような結果が得られます。
<pre>
<head><title_alt title="FORM test"></head><b>足し算をする form だよ</b>
<pre_int>[<input_alt hseq="1" fid="0" type=text name="x" width=10 maxlength=20 value="1"><u>1 </u></input_alt>]</pre_int> <pre_int>[<input_alt hseq="2" fid="0" type=text name="y" width=10 maxlength=20 value="2"><u>2 </u></input_alt>]</pre_int> <pre_int><input_alt hseq="3" fid="0" type=submit name="" width=20 maxlength=20 value="実行">[実行]</input_alt></pre_int> <pre_int><input_alt hseq="4" fid="0" type=reset name="" width=20 maxlength=20 value="クリア">[クリア]</input_alt></pre_int>
</pre><title>FORM test</title>
すなわち、input_alt タグによって実際に入力を行う領域が示され、fid によっ
て対応する form が示されているのですが、その form の具体的な内容(メソッ
ドなど)が含まれていないため、この結果だけでは form を取り扱うことがで
きません。そのため、ここで必要になる情報を事前に取り出しておく(2)よう
にしているわけです。
しかし、(2)をきちんと行うためにはかなりの努力が必要です。特に、コメン
トの処理や、<option> タグの処理などを考えると、かなりしんどいことが分
かってきたので、これは w3m -halfdump の出力を変更してもらった方が楽だ
と考えるようになりました。
そのため、不足している情報を -halfdump に含めて頂けないでしょうかと
emacs-w3m ML および w3m-dev ML で議論をした結果、完全な形の -halfdump
の出力は以下のようなものでしょう、という結論になりました([w3m-dev 01849],
[emacs-w3m:00375])。
... HTTP-header ...
(空行)
<w3mhalfdump version=...>
<head>
... 保持している <meta> 要素や <title> ...
</head>
<form>
...
</form>
<body>
... halfdump 出力 ...
</body>
</w3mhalfdump>
この変更が実現されれば、w3m-form-parse-region 関数は要らなくなります。
# だから、余計に w3m-form-parse-region 関数をまっとうな実装にする気に
# ならないんですよねえ…。
したがって、現在の form 対応は上記の変更が実現されるのを待っている状態
です(出力形式についての提案は行われましたが、具体的な実装はまだ出てき
ていません)。ですから、form 対応に力を貸して頂ける場合は、上記の変更を
行う方法について先に検討して頂けると有難いです。
--
土屋 雅稔 ( TSUCHIYA Masatoshi )
http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/