w3mのブックマーク

w3mは、伊藤彰則さんという方の手により制作されたテキストブラウザ。名前の由来は、WWW-wo-Miru(ワールド・ワイド・ウェッブを見る)の頭文字から、らしいです。

僕も、最近、これをよく使ってまして、画像や動画が目当てのウェブ閲覧についてはFirefox。テキスト系サイトや調べ物についてはw3mというように、使い分けています。

それで、一般的な使用方法——起動オプションや操作キー。——については、さほど困ったことはないんですが、ブックマークについて、いくつか、困難に直面したので、今回は、それについて、書いていこうかと。

w3mの使い方については、別ページにまとめてありますんで、そっちも、よろしければ、どうぞ。

w3mのブックマークとは

w3mのブックマークは、bookmark.htmlというHTMLファイルで、Linux版、もとい、UbuntuやDebian、openSUSEの場合、ユーザのホームディレクトリの中の、.w3m/というディレクトリ内に作られます。どこのディストリ版でも、だいたい、そうなのか?

それを、起動時に呼び出すなら、-Bオプションをつけて、$ w3m -Bか、あるいは、起動後、使用中に見るなら、Esc+bで、一枚のページとして読み込み、表示します。

問題なのは、このファイルの、編集の仕方です。

手書きでブックマークファイルを編集する

それで、僕のような、他のグラフィカルなブラウザからの移行組が、ブックマークをエクスポートしてきて、w3mのブックマークとしても使いたい、などと思った時に、例えば、FirefoxのブックマークをHTML形式でエクスポートして、そのまま、.w3mディレクトリに放り込めばいいかというと、そういう問題でもない。この方法は、w3mから、新しくブックマークを追加する際に、ちょっとした問題を引き起こします。

このままでは、使えないわけではないものの、w3mから新しいブックマークを登録する場合、いろいろとめんどくさいことになります。あくまで、めんどくさいだけですが、後々、ブックマークのSection(普通のブラウザで言うところの『フォルダ』)が重複してしまうとか、目をつぶり難い問題が発生することも……。

なので、一番最初に、ちゃんとしたブックマークファイルを作ってしまうことをオススメします。一度作って、バックアップでもとっとけば、PCを買い足したり、OSを入れ替えたりしても、w3mをインストールすれば、同じファイルを使い回しできますから。

ブックマークファイルの中身

まずは、w3mのブックマークファイルの中身が、一体、どうなっているのかから見てみましょう。

<HTML><HEAD><TITLE>Bookmarks</TITLE></HEAD>
<BODY>
<H1>Bookmarks</H1>
<H2>Linux</H2>
<UL>
<LI><A HREF="http://www.ubuntulinux.jp/">Home | Ubuntu Japanese Team</A>
<LI><A HREF="http://www.debian.or.jp/">Debian JP Project - Debian JP Project</A>
<LI><A HREF="http://www.debian.org/">Debian</A>
<LI><A HREF="http://ja.opensuse.org/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8">openSUSE</A>
<LI><A HREF="http://opensuse-man-ja.berlios.de/opensuse-html/index.html">openSUSE ドキュメンテーション</A>
<LI><A HREF="http://www.geeko.jp/">Geeko World : openSUSE & SUSE Linux Enterprise</A>
<LI><A HREF="http://www.kde.gr.jp/">K Desktop Environment - 日本 KDE ユーザ会</A>
<!--End of section (do not delete this comment)-->
</UL>
<H2>HTML</H2>
<UL>
<LI><A HREF="http://www.y-adagio.com/public/standards/tr_css2/toc.html">Cascading Style Sheets, Level 2</A>
<LI><A HREF="http://www.w3.org/TR/CSS2/">Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</A>
<LI><A HREF="http://www.w3.org/TR/REC-html40/">HTML 4.01 Specification</A>
<LI><A HREF="http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/cover.html">HTML 4.01 Specification (ja)</A>
<LI><A HREF="http://www.w3.org/Consortium/Translation/Japanese.html">W3C - W3Cの仕様書等の文書の日本語訳集</A>
<LI><A HREF="http://www.scss.tcd.ie/misc/15445/15445.HTML#elementtype">ISO/IEC 15445:2000(E) ISO-HTML</A>
<LI><A HREF="http://www.y-adagio.com/public/standards/jis_html/toc.htm">HTML 目次</A>
<LI><A HREF="http://validator.w3.org/">The W3C Markup Validation Service</A>
<LI><A HREF="http://jigsaw.w3.org/css-validator/validator.html.ja">W3C CSS 検証サービス</A>
<LI><A HREF="http://www.jsa.or.jp/stdz/instac/commitee-acc/W3C-WCAG/WCAG20/index.html">WCAG 2.0(W3C勧告)日本語訳 [原題:Web Content Accessibility Guidelines (WCAG) 2.0]</A>
<LI><A HREF="http://www.w3.org/TR/WCAG20/">Web Content Accessibility Guidelines (WCAG) 2.0</A>
<LI><A HREF="http://www.w3.org/TR/2000/NOTE-WCAG10-TECHS-20001106/">Techniques for Web Content Accessibility Guidelines 1.0</A>
<LI><A HREF="http://www.zspc.com/documents/wcag10-tech/">ウェブコンテンツ・アクセシビリティ・ガイドライン1.0 技術書</A>
<LI><A HREF="http://www.jsa.or.jp/default.asp">JSA 日本規格協会</A>
<LI><A HREF="http://www.html5.jp/">HTML5.JP - 次世代HTML標準 HTML5情報サイト</A>

<LI><A HREF="http://www.w3.org/TR/html5/">HTML5</A>
<LI><A HREF="http://gsnedders.html5.org/outliner/">HTML 5 Outliner</A>
<LI><A HREF="http://www.mirai-net.jp/skill/tool/html_moji.html">HTML文字実体参照&数値文字参照一覧</A>
<!--End of section (do not delete this comment)-->
</UL>
<H2>IRC Chat</H2>
<UL>
<LI><A HREF="http://labs.edge.jp/colabv6/ircnet/">livedoor IRC(Internet Relay Chat)</A>
<LI><A HREF="http://irc.2ch.net/">irc.2ch.net (2ch@IRC)</A>
<LI><A HREF="http://irc.cre.jp/">創作者のためのIRC(チャット)サービス: irc.cre.jp</A>
<LI><A HREF="http://www.friend-chat.jp/">Friend Chat IRC</A>
<LI><A HREF="http://www.ircnet.ne.jp/">IRCnet-JP 情報提供サイト</A>
<LI><A HREF="http://www.reicha.net/">IRC network "ReichaNet"</A>
<!--End of section (do not delete this comment)-->
</UL>
<H2>Other</H2>
<UL>
<LI><A HREF="http://www.gentoo.org/doc/ja/gnupg-user.xml">Gentoo Linux ドキュメント -- GnuPG Gentoo ユーザーガイド</A>
<LI><A HREF="http://gnupg.hclippr.com/">GNU Privacy Guard講座 | 暗号化ツールGnuPG情報サイト</A>
<LI><A HREF="http://ja.opensuse.org/Upgrade/Supported">Upgrade/Supported - openSUSE</A>
<LI><A HREF="http://www.google.co.jp/">Google</A>
<!--End of section (do not delete this comment)-->
</UL>
</BODY>
</HTML>
一例として、僕ん家の、w3mのブックマークファイル(の一部)

手書きでブックマークファイルを作る

というわけで、これを、手書きで作ってしまえと。

注意すべき点は、以下。

ブックマークされた各ページは、h2要素で区切られたSectionに割り振られる。
先に書いたとおり、これが、普通のブラウザのブックマークに於ける『フォルダ』のような役割を果たします。
さらに下層、つまり、h3要素以下の層は作れないのかと聞かれそうですが、以前、——もう、何年前かな。——一度、Windows版で試したことがあったのですが、うまく行かなかった記憶があります。
というか、そもそも、w3mって、見出しの表現が曖昧で、h1〜h6要素が、全部、同じにレンダリングされるんで、階層を下に掘っても、あまり意味がなかったりして……。
ブックマークされた各ページは、A要素に入れられ、LI要素に格納された上で、UL要素に纏められる。
とても単純な箇条書きリストです。
LI要素の終了タグは省略されてますが、これは、省略してもしなくても、さほど問題はありません。w3m自身は省略して記述するので、そのへんの違いが気持ち悪い、許せないという人は、省略しておいた方がいいでしょう。
タグは、大文字、小文字の別を問わない。
ただし、w3mは大文字で書き出す。上のULタグ同様、w3mが書きだすものの書式に、できる限り合わせたい場合は、すべて大文字で書いておくといいでしょう。
各リストの末尾に、コメント宣言が差し込まれる。
これは、w3m自身にとって、各Sectionの終わりを明示しているものなので、これをなくすと、Sectionの終わりを見つけられなくなります。そうすると何が起こるかというと、ブックマークに新しいページを追加する際に、このブックマークのファイルに、ひと続きに新しいブックマークを、HTML要素から記述し、そこにブックマークを収納してしまうので、結果として、ブックマーク自体やSectionのダブリなど、面倒な問題が発生します。
このままの文言で、正しく差し込んでください。差し込む場所は、全てのUL要素の終了タグの直前です。
文書型宣言とエンコード指定は省かれる。
僕も、なんだか気持ち悪くて、ついついつけてしまいたくなるのですが、なにか問題が起こっても嫌なので、つけてません。w3mが生成するブックマークファイルにも付きません。
外部に公開するものならばともかく、w3mが使うだけのものなので、これでいいでしょう。

上を踏まえたうえで、テキストエディタなどで手打ちするなりすれば、簡単にできます。

え? 『HTMLエディタではいかんのか?』って? 良いとは思いますが、——今時は、そんな行儀の悪いエディタはないのかな?——HTMLエディタ、ウェブオーサリングソフトなんかの中には、いらない記述を、山ほど書き込むものがありまして……、もとい、僕は、そういう印象を持っていまして、普通にウェブサイトを作るにしても、何にしても、あまり、そういうソフトの使用をおすすめしたくないので、このくらいのものは、手書きで書いてください。

逆に、この程度のものに対して、あんなものを持ちだして書こうとするほうが、めんどくさいと思いますよ。

手書き以外の方法

と、ここまで書きましたが、手書きで作成、というのは、ある程度、HTMLに慣れている人(でなくとも書けるとは思うんだけど)の取る選択肢の一つであって、タグの羅列を見ただけで、HTMLなんかわからんし、僕!みたいになってしまう人は、素直に、ブックマークしたいページをw3mで開いて、w3mのブックマーク機能を使って作ったほうがいいと思います。

$ w3m URLで、w3mが、任意のページを開いて立ち上がる。その状態で、Esc+aを押すと、ブックマーク登録のページが開くので、各項目を選択、入力、確認し、[ADD]にカーソルを合わせ、Enter。これを、ブックマークしたいページ分だけ、繰り返す。

URLを指定して、いちいち立ち上げるのは面倒だ、という向きには、他のブラウザのブックマークをHTML形式にエクスポートしたものを、$ w3m -bookmark file bookmark-file.htmlとして、読み込んで立ち上げ、ブックマーク内のリンクを、Ctrl+tで、タブ(※)として開きながら、この作業を進めると、結構、楽に行けるかもしれない。

個人的には、本当に簡単なHTMLなので、手打ちで作ってしまうほうが楽だと思うんですけどね。

おまけ:フレームセットなページのブックマークの仕方

それから、フレームセットのページをブックマークする方法についても、念の為、書いておきますか。

前提条件として、w3mの設定で『フレームの自動表示』がYESになっている場合のお話です。NOになっている場合、分割されたページは、パーツごとにしか読み込めないので、問題ありません。

フレームページを表示した状態で、=を押すと、ページの情報が表示される。その下の方にある、『Frame information』というところを見てもらうと、分割表示されているページらのURLが、複数のリンクになって、全部出てくる。その中から、ブックマークしたい、メインの文書を単体で表示させてから、ブックマークの追加作業をする。という手順を要するけども、この手順さえ踏めば、ブックマークできるので、どうかめげないでください。