[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: [w3m-dev 01844] backend and emacs-w3m (was: display version for w3m-0.2.1)



坂本です。

> From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp>
> 坂本> w3m.el の動作を知らなくても w3m-dev 側でメンテできる状態になるまでは
> 坂本> (基本的なプロトコルが固まるまでは) w3m.el 側で開発をして欲しかった。
> 基本的なプロトコルについては、HTTP をモデルにした通常のサーバークライ
> アントモデルが妥当なのではないかと考えています。
> この際ですから、私が backend mode の理想形として持っているイメージを叩
> き台として文書化してみました。皆さんのご意見をお願いします。

w3m 本体側としての私の意見。

(要点)
 * サーバであることより単体での動作を優先する。
 * w3m 本体で完結するモデルであるべき。
 * -halfdump の出力の形式を変更することは譲れない。

> (要点その1) 上位層の必要とする情報を欠落させない。

まず、これはちょっと無理があります。
w3m は HTML から text ベースブラウザとして必要最小限のものを
取捨選択する事で軽快さ(速度面とメモリ面)を得てます。
上位層から「この情報を捨てずによこせ」といわれても困ります。

上位層の必要とする情報ではなく、『-halfload 相当で必要とする情報
(header や form 等)は欠落させない』ということなら当然出力すべきでしょう。
# 現状はまあバグみたいなものですね。
# デバッグ用のオプションにそこまで手が回らなかったけど。

> (要点その2) backend protocol によって出力される中間標準形式をきちんと
>             確定する。その基本は現時点の -halfdump の出力だが、以下の
>             点に留意して規格化する。

-halfdump の出力の形式は常に変わって来ましたしこれからも変わるでしょう。
今回は入ってませんが、<button> タグや title 属性が入れ
変わるでしょうし、name や href 属性も form の fid の様に hseq から
引くかもしれません(そちらが高速であればそうします)

これを固定するのは事実上開発停止に近いので(すくなくとも私は)譲れません。

ヘッダとして halfdump 形式のバージョンを付けて出力するので、
勝手に解析してもらうってのがいいかな。
# HTTPサーバ と HTML の関係ってそうでしょ。

>         (a) 文書のヘッダをきちんと出力する。
>         (b) form の処理に必要な情報をきちんと出力する。

これについては上記の通りです。w3m として必要な情報は出力するべきです。

>         (c) 出力文字コードを指定できるようにする。指定された文字コード
>             で表現できない文字については、HTML 規格にのっとった文字実
>             体参照または内部タグで表現する。

w3mmee や w3m-m17n でということでしょうが、これはやるべきでしょうね。
表現できない文字については、ちと面倒だし本体には無駄な機能だから
保留しておきます。
# mule なんだから内部コードも解析してよ。とも思ったりもしますけどね ;-)

> (要点その3) 須藤さんの作成されたパッチの w3m-urgent-message による出力
>             を解析するのは上位層の負担が大きいため、レスポンスコードに
>             よって表現するようにする。つまり、w3m -backend が擬似的な 
>             HTTP server のように振る舞うようにする。

バッファ操作系(page info とか view source)は無しでいいのでしょうか。
# バッファ操作はクライアント側でやった方が簡単と思います。

(独り言)
w3m のコードを流用して、halfdump 相当を行う proxy サーバを書くべき
なんじゃ無いのかなぁ。w3m にあれこれ突っ込むよりいいんじゃないの?
-------------------------------------------
Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
 http://www2u.biglobe.ne.jp/~hsaka/