HTML には Link 要素というものがあって、外部ファイルへのリンクと閲覧中のファイルとの関係性を記述できる。代表的なものは、外部スタイルシートへのリンク。この他にも、代替ファイルへのリンクとか、「次の」ファイルや「前の」ファイルへのリンク、それから「スタートページ」へのリンクを設定できる。
link 要素の書き方は二種類ある。一つは head 要素の中に書く方法。
<link rel="start" type="text/html" href="../index.html" title="...">
もう一つは、a 要素の中に書く方法。
<a href="../index.html" rel="start" title="...">
link 要素を正しく使えば、適切なリンク先をブラウザーに教える事ができる。例えば、ブログで古い記事の続きを書く場合でも
rel="previous"
として、古い記事にリンクを張ればいい。適切なブラウザーを使っていれば、キー操作一つで「前の」記事へとジャンプする。
問題は、 適切な ブラウザーが少いこと。そこで、 firefox と Emacs-w3m で link 要素を使う方法を書いとく。
Firefox - linkToolbar
firefox には LinkToolbar という拡張がある ( 日本語版もある)。この拡張を導入すると、 firefox の右下に link 先を表す小さなアイコンが表示される。アイコンは左から、スタート・親・最初・前・次・最後・その他、のページへのリンクになってる。アイコンを中クリックすると、新しいタブでページを開くので便利。
Emacs-w3m
Emacs-w3m には、link 要素用の関数は用意されていない。けれど、link 要素をスキャンして値を変数に保存する機能があるので、quick hack で link ジャンプを実現できる。link 要素関連の変数は次の通り。
- w3m-next-url
- rel="next" なリンク情報を保存
- w3m-previous-url
- rel="prev" なリンク情報を保存
- w3m-start-url
- rel="start" なリンク情報を保存
- w3m-contents-url
- rel="contents" なリンク情報を保存
この変数を活用する。.emacs に次のコードを追加する。
(add-hook 'w3m-mode-hook '(lambda () (define-key w3m-mode-map "\C-cN" (lambda () (interactive) (if w3m-next-url (w3m-goto-url w3m-next-url)))) (define-key w3m-mode-map "\C-cP" (lambda () (interactive) (if w3m-previous-url (w3m-goto-url w3m-previous-url)))) (define-key w3m-mode-map "\C-cS" (lambda () (interactive) (if w3m-start-url (w3m-goto-url w3m-start-url)))) (define-key w3m-mode-map "\C-cC" (lambda () (interactive) (if w3m-contents-url (w3m-goto-url w3m-contents-url))))))
今回の例だと、 C-c N に Next、 C-c P に Previous、 C-c S に Start、 C-c C に Contents へのジャンプ機能を割り当てた。ここら辺のキーバインドは、お好きなように。
No comments:
Post a Comment