[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Up directory(page?)
- From: "Masatake YAMATO" <masata-y@xxxxxxxxxxxxxxxxxx>
- Date: Mon, 12 Mar 2001 13:22:23 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 00166
大和 正武と申します.
昨日からw3m.elを利用しはじめました.
とても便利です.開発者のみなさんに感謝します.
いよいよemacsから離れられません.
以前からウェブブラウザに欲しいと思っていた機能を
w3m.elに実装してみたので,報告するとともにみなさんが
有用であると思われたらw3m.elに取り込んでいただきたく
思います.
実装した機能(w3m-view-parent-page; "^"キーにバインドしました.)は,
現在提示しているページよりも一つ「上」のページを表示する機能です.
たとえば
http://www.foo.bar/baz/giga
を現在表示している場合には,"^"キーを押すと
http://www.foo.bar/baz/
を表示しようとします.さらに"^"キーを押すと
http://www.foo.bar/
を表示します.
あるウェブページを開こうとしてNot Foundとなる場合があります.
このとき,みなさんはどうなさいますか? 特にそのページ(に書いてあっ
ただろうこと)に関心がある場合には,その親ディレクトリ(やそこにある
ファイル)を漁ろうとしませんか? w3m-view-parent-pageそのようなファイル
漁るときに,わざわざurlを編集する必要なく,キーつで上のディレクトリ
(ページ?)へ移動できます.
w3m.elを評価したあとにどうぞ.
;;
(define-key w3m-mode-map "^" 'w3m-view-parent-page)
(defun w3m-view-parent-page ()
(interactive)
(if (null w3m-current-url)
(error "w3m-current-url is not set"))
(let (parent-url)
;; Check whether http://foo/bar/ or http://foo/bar
(if (string-match "/$" w3m-current-url)
(if (string-match "\\(.*\\)/[^/]+/$" w3m-current-url)
;; http://foo/bar/ -> http://foo
(setq parent-url (match-string 1 w3m-current-url)))
(if (string-match "\\(.*\\)/.+$" w3m-current-url)
;; http://foo/bar -> http://foo
(setq parent-url (match-string 1 w3m-current-url))))
;; Ignore "http:/"
(if (and parent-url
(string-match "^[a-z]+:/$" parent-url))
(setq parent-url nil))
(if parent-url
(w3m parent-url)
(error "No parent page for: %s" w3m-current-url))))