ブックマークの管理

「ブックマーク(Bookmark)」は、自分がよく見に行くWebページを、後で素早く開けるように記録しておく機能である。Webブラウザには大抵搭載されている。IEだと「お気に入り」と呼ばれていたりする。ちょっと変わったブックマークの管理方法を紹介しよう。

weblocファイル

私はブラウザのブックマーク機能はほとんど使っていない。複数のMacで、さまざまなWebブラウザを取っ替え引っ替え使っているので、管理が面倒だからだ*1

では、どうしてるかというと、インターネットロケーションファイル(.webloc)を、Finder上でフォルダに分け入れてブックマークとして使っている。最近だとソーシャルブックマークサービスを使うという手もあるが、それより手軽で簡単。

.weblocファイルは、SafariでWebページを開いているとき、アドレスフィールドに付いてるアイコン(favicon)をデスクトップにドラッグ&ドロップすると作成できる。.weblocファイルをダブルクリックすれば、デフォルト Web ブラウザでURLが開かれる。他のブラウザで開きたければ、そのブラウザのアプリケーションアイコンに.weblocファイルをドラッグ&ドロップすればよい。

WindowとMacで共有

Mac OS Xだけで暮らしているぶんにはこれで問題なかったのだが、溜め込んでいるbookmarkをWindowsでも使いたくなった。

当たり前だが、WindowsのInternet Explorerは.weblocファイルを開くことはできない。IEが使うのはインターネットショートカットファイル(.url)だ。Safariもurlファイルを開けるので、webloc → url 変換プログラムがあれば問題は解決だ。

ネットで検索してみるといくつか変換アプリとかスクリプトが見つかるのだが、どれもしっくりこないので、自作した。何か問題があっても責任は持たないが、お使いになりたい方はどうぞ。

ダウンロード:webloctourl.tar.gz

※ダウンロード後、隔離属性 (com.apple.quarantine) を除去しないと実行できないので注意。そもそもターミナルからcurlコマンドなどを使ってダウンロードしたほうがいいかも。

webloctourlの使い方

webloctourlはFoundation Tool(Objective-Cで書かれたコマンドラインツール)だ。ターミナルから、

$ webloctourl hoge.webloc

とすると、hoge.weblocと同じURLを表すhoge.urlが作成される。

$ webloctourl -d hoge.webloc

のように -d オプションを付けて実行すると変換元の.weblocファイルは削除される。 そんだけ。

フォルダ内の全ての.weblocを.urlにしたければ、

$ find . -type f -name "*.webloc" -print0 | xargs -0 webloctourl -d

とでもすれば良かろう。

さらに、Ubuntuでも共有できるよう、Linux版のFirefoxで使われる「ウェブサイトへのショートカット」(HTML形式)ファイルに変換できるオプション -m/--html を追加しておいた。HTML形式のショートカットファイルは、UbuntuでもWindowsでもMacでも開けるのでもっとも互換性が高い。

weblocファイルの構造

インターネットロケーションファイルでは、リソースフォークにURLなどの情報が記録されている。

$ derez vector.webloc 
data 'drag' (128) {
	$"0000 0001 0000 0000 0000 0000 0000 0003"            /* ................ */
	$"5445 5854 0000 0100 0000 0000 0000 0000"            /* TEXT............ */
	$"7572 6C20 0000 0100 0000 0000 0000 0000"            /* url ............ */
	$"7572 6C6E 0000 0100 0000 0000 0000 0000"            /* urln............ */
};

data 'url ' (256) {
	$"6874 7470 3A2F 2F77 7777 2E76 6563 746F"            /* http://www.vecto */
	$"722E 636F 2E6A 702F"                                /* r.co.jp/ */
};

data 'TEXT' (256) {
	$"6874 7470 3A2F 2F77 7777 2E76 6563 746F"            /* http://www.vecto */
	$"722E 636F 2E6A 702F"                                /* r.co.jp/ */
};

data 'urln' (256) {
	$"5665 6374 6F72 EFBC 9A20 E382 BDE3 8395"            /* Vector: ソフ */
	$"E383 88E3 83A9 E382 A4E3 8396 E383 A9E3"            /* トライブラ? */
	$"83AA EFBC 8650 43E3 82B7 E383 A7E3 8383"            /* ??&PCショッ */
	$"E383 9720 2D20 E59B BDE5 8685 E69C 80E5"            /* プ - 国内最? */
	$"A4A7 E7B4 9AE3 81AE 20E3 8395 E383 AAE3"            /* ??級の フリ? */
	$"83BC E382 BDE3 8395 E383 8820 E383 80E3"            /* ??ソフト ダ? */
	$"82A6 E383 B3E3 83AD E383 BCE3 8389 E382"            /* ??ンロード? */
	$"B5E3 82A4 E383 88"                                  /* ?イト */
};

Safari 4からはデータフォークにもバイナリplist形式でURLが書き込まれるようだ。旧いSafariの.weblocファイルでは、データフォークは空(カラ)。

$ plutil -convert xml1 -o - vector.webloc
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>http://www.vector.co.jp/</string>
</dict>
</plist>

urlファイルの構造

インターネット ショートカット ファイルは、INI形式テキストでURLなどの情報が書き込まれている。

$ cat vector.url
[InternetShortcut]
URL=http://www.vector.co.jp/
IconFile=http://www.vector.co.jp/favicon.ico
IconIndex=1

(2009-11-16/2022-05-26)


©2009/2022 "TAKAHASHI Ryoji" @zone0.net
Last updated: 2022-05-26