記事本文
今見ているサイト内で「はてなブックマーク」されてるエントリ一覧を表示するブックマークレット
JavaScript を利用し、今見ているサイトの URI 中のドメインを取得し、それを元にそのサイトがどれくらいはてなブックマークにブックマークされているかを調べるブックマークレットです。
「今見ているサイト」の判断基準
はてなブックマークは、
http://b.hatena.ne.jp/entrylist?=一覧表示したい URI
という指定をすることで、その URI を含む記事の被ブックマーク登録状況を一覧表示できます。
そしてそれはディレクトリ毎に絞り込むことが可能です。
- http://b.hatena.ne.jp/entrylist?url=http://piro.sakura.ne.jp/
- http://b.hatena.ne.jp/entrylist?url=http://piro.sakura.ne.jp/latest/
- http://b.hatena.ne.jp/entrylist?url=http://piro.sakura.ne.jp/xul/
( IRC で根回しして、 outsider reflex を例に出させていただくことになりました。 )
もしそのサイトが独自ドメインを持っているなら、
http://b.hatena.ne.jp/entrylist?url=http://piro.sakura.ne.jp/
のように指定すれば、そのドメイン以下の全てのリソースの被ブックマーク状況を知ることができます。
また、その中で内容によってディレクトリを分けている場合、
http://b.hatena.ne.jp/entrylist?url=http://piro.sakura.ne.jp/xul/
のように、そのディレクトリまで指定すると、そのディレクトリ以下のリソースの被ブックマーク状況を知ることができます。
fladdict.net blog: 今見ているサイト内で「はてなブックマーク」されてるエントリ一覧を表示するブックマークレットは、そうしたはてなブックマークの仕様を元に、
url.match(/http:\/\/[^\/]*/g);
として、ドメイン以下のリソースの被ブックマーク状況をブックマークレットで取得できるように作られています。
はてなダイアリーなどのサービスの場合
はてなダイアリーなどのように、ドメイン直下にユーザ ID の名前のディレクトリ名を割り当てて各ユーザのサイトを成り立たせている場合、一律に
url.match(/http:\/\/[^\/]*/g);
としてしまうと、
http://b.hatena.ne.jp/entrylist?url=http://d.hatena.ne.jp/
と指定したことになり、「今見ているサイト」の被ブックマーク状況では無くなります。
そこで、 http://ドメイン名/ユーザ ID/ 形式になっているサービスについては、ブックマークレット作者の Taka さん ( fladdict.net blog ) が、別途対処されている形になっています。
( url.match(/http:\/\/[^\/]*\/[^\/]*/g); といった感じで、ドメイン自体を基準とするのではなくドメイン直下のディレクトリを基準とするように対応 )
はてなダイアリやライブドア・ブログ等、有名なブログサービスではドメインレベルでなく個人レベルで検索されるように修正しました。 またjs本体がサーバーサイドに置かれたため、更新することなしに最新のバージョンが使用できます。
ブックマークレット自体は
javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";s.src="http://www.fladdict.net/bookmarklet/hb_siteentry/hb_siteentry.js";document.body.appendChild(s)})();
という作りになっており、使用するたびに http://www.fladdict.net/bookmarklet/hb_siteentry/hb_siteentry.js を読み込んで実行という形になっているため、今後新たにこのような weblog サービスへの追加対応などがあっても大丈夫なようになっています。
ブックマークレットを新着順で使用したい
そして、ここからが本題なのですが、自分のサイトの被ブックマーク状況を知りたい場合は、デフォルトの人気 ( = 被ブックマーク数 ) によるソートではなくて、新着順 ( = ブックマークされた時刻 ) によるソートの方が便利な場合もあります。
その場合、被ブックマーク一覧を表示する URI に
sort=eid
というパラメータを付加して、
http://b.hatena.ne.jp/entrylist?sort=eid&url=http://hxxk.jp/
のように指定すれば実現できるのですが、前項の理由でブックマークレット自体は http://www.fladdict.net/ のサーバ上に置かれているため、もしこのような対処をしたい場合は、
- http://www.fladdict.net/bookmarklet/hb_siteentry/hb_siteentry.js をダウンロード
location.href='http://b.hatena.ne.jp/entrylist?url=' + url;をlocation.href='http://b.hatena.ne.jp/entrylist?sort=eid&url=' + url;に変更- 自サイトのスペースのどこかに編集した hb_siteentry.js を put
- ブックマークレット中で読み込んでいる URI を自サイトのスペースのものに変更
という手順を踏むことになります。
しかし、この手順には「自分でファイルを put できるスペース」が必須条件であり、また最新版との同期が取れないという欠点があります。 Taka さん ( fladdict.net blog ) に「新着順のブックマークレットも置いてくれ ! 」とお願いすればあっさりと解決する件ではあるのですが、いきなりお願いするんじゃなくて一応自分でこういう対処をしてみた上でお願いした方が良いかなあと思ったのでつらつらと書いてみた次第です。
トラックバック送信先
- fladdict.net blog: 今見ているサイト内で「はてなブックマーク」されてるエントリ一覧を表示するブックマークレット
-
新着順によるソートの方でブックマークレットを使用したい場合もあるので、勝手なお願いではありますが
sort=eidを付加したバージョンも置いていただけるとありがたいです。

