アクセス頻度に応じてリンクに色をつける

CSSのa:visitedを利用することにより、 アクセスしたことがあるリンクとそうでないリンクの色を変えることができるが、 アクセス頻度によって色を変えるともっと便利かもしれない。 Firefoxの拡張機能である Greasemonkeyを使って これを実装してみた。

使用例

左図のようなページで「Google」をクリックすると、 中図、右図のようにリンクの背景色が変化する。 クリックせずに何日も放置すると左図のような状態に戻る。

Greasemonkey

Greasemonkeyは、 Firefoxの機能拡張を利用することによって、 ユーザが参照したWebページ上でJavaScriptを自働実行させるシステムである。 Greasemonkeyの機能を利用して<a>タグをフックしてアクセス数をカウントし、 それに応じて背景色を変えることにすれば、 アクセス頻度に応じてリンクの色を変えることができる。 Greasemonkeyについては Wired記事Firefoxまとめサイト に詳しい解説がある。

アクセス状況と背景色のマッピング

ページのアクセス状況を背景色にマッピングするには、 Unix Magazine 2003年8月号で紹介した、 Webページの鮮度の視覚化 と同じ手法を利用することにする。 Webページへのアクセス履歴をすべて記録するとデータが膨大になる可能性があるので、 以下のような方針で鮮度を計算することにする。 この方針の場合、 Webページごとに最終アクセス時刻とそのときの鮮度だけを 記録しておけばよいことになる。

実装

GreaseMonkeyには GM_setValue(), GM_getValue() という関数が用意されており、 これらを利用するとデータを永続的に保存することができる。 これらを使って、URLごとにアクセス頻度をセーブしておけばよいことになる。 必要な処理は以下のとおり:

インストール

Greasemonkeyをインストールしてから colorlink.user.js スクリプトをGreasemonkeyに登録する。 http://pitecan.com/ に対してだけスクリプトが有効になっているが、 これは適当に修正する。


2005/11/3 Toshiyuki Masui @ pitecan.com