[Date Prev][Date Next][Thread Prev][][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

足し算をする form だよ

この時、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/