[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: file を html として開く方法
>>>>> In [emacs-w3m : No.09944] 中山さん wrote:
> At Mon, 21 Jan 2008 11:05:02 +0900,
> Katsumi Yamaoka wrote:
>> `w3m-find-file' にしろ `w3m-goto-url' にしろ、引数などで
>> content type を指定できるように改良する必要があるでしょう。
そもそも `w3m-find-file' はどういう目的で使うために用意されてい
るコマンドなのかがぼくの中では曖昧だったのですが、最初にこれを作っ
た白井さんの記事を見ると、単に `find-file' するのではなく、中身
が text/html かどうかを積極的に調べて emacs-w3m としてしかるべき
処理を行なうことが期待されているようです。(あたりまえ、ですか?)
<http://emacs-w3m.namazu.org/ml/msg00282.html>
>>>>> In [emacs-w3m : No.00283] Hideyuki SHIRAI (白井秀行)さん wrote:
> これに関連した話だと、僕は dired から w3m できるように
> (add-hook 'dired-mode-hook
> (lambda ()
> (define-key dired-mode-map "\C-xw" 'dired-w3m-find-file)))
> (defun dired-w3m-find-file ()
> (interactive)
> (require 'w3m)
> (let ((file (dired-get-filename)))
> (if (y-or-n-p (format "Open 'w3m' %s " (file-name-nondirectory file)))
> (w3m-find-file file))))
> な関数/設定を仕込んでいます。結構便利。
そうすると、その内容が text/html かどうかを判定する機能はとても
重要ですね。判定基準は次のような順序になるでしょうか。
1. オプショナル引数 (boolean?) で text/html が指定された。
2. ファイル名が "\\.html?\\'" だった。
3. 中身を解析したら text/html だった。
そして、これらに合致しなかったら `w3m-local-find-file-function'
で指定された関数を使う、と。
(Gnus が記事中の text/html パートを browse-url に渡すときはファ
イル名に .html を付けています。)
> 前のメールを出した直後に
> "opening local files with arbitrary extensions as HTML"
> のスレッドの山岡さんのメールを読んで、w3m-local-find-file-function
> をいじっていたのですが、結局 content type を渡さないといけなさそう
> だなーというところで止まっていました。現状の構造だとcontent type
> を渡すのは大変ということでしょうか。
いや、というか content type を渡せるようになっていた時期があるん
ですよ。
<http://emacs-w3m.namazu.org/ml/msg00792.html>
>>>>> In [emacs-w3m : No.00793] 中川さん wrote:
> さて、w3m-find-file への要望ですが、method(or type? "text/html" と
> か)をオプションで指定できるようにできないでしょうか。現在は拡張子から
> の推測だけなので、hoge.html.20010517 なんてファイルを作ってしまうと
2001-05-17 TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxx>
* w3m.el (w3m-find-file): New optional argument, `type' is added.
ところが:
2001-05-21 TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxx>
(w3m-find-file): Simplified and optional argument `type' is removed.
(経緯は不明)
というようなことを昨日は漫然と眺めていて、さらに調べを進めるのが
面倒になってきたので、こんな方向↓に逃げた次第。;-p
>> でも、とりあえずそれは棚上げにして、こんなのではどうですか?
>>
>> (defun mime-w3m-view-text/html (entity cal)
[...]
>> (insert (decode-coding-string (mime-entity-content entity) coding))
>> (w3m-buffer)
> mime-w3m.el に取り込むにはためらわれます。
> 添付する差分でよさそうに思っていますが、問題になりそうな
> 点はありますでしょうか。
問題ではなくて単純な疑問なんですが。すでに FLIM が text/html だ
と判定したパートを、そのコンテンツが Emacs のバッファ上に存在し
ているのに、何のブラウザが使われるかわからないわけではなく他でも
ない emacs-w3m に渡すのに、いったんファイルを経由させるのはなぜ
ですか?
`w3m-region' や `w3m-buffer' を使う場合、新規の session や frame
を作るかどうかの制御が面倒かもしれませんね。通常 emacs-w3m を使
うときのために設定したユーザの好みが、そのまま反映されるようにす
るためには、`w3m-find-file' を利用するのが最も妥当だ、ということ
であれば理解できます。
そして `w3m-find-file' を使うのならば、上に書いたような text/html
かどうかの判定結果を `w3m-goto-url' に渡す機構は、だれがやるにし
ろ、追加する必要がありますよね。
(ぼくは全貌をきちんと把握して書いているわけじゃないので、このボ
ケ頭をなぐってくれるのは歓迎です。;-)
--
山岡