はてなブックマークコメント表示ブログパーツ
本ドキュメントに関する注意事項
本ドキュメントははてなブックマークが提供するコメント表示用ブログパーツの実装を解説するものです。
コメント表示ブログパーツとは
ご利用のブログサービスに、はてなブックマークでのコメントを表示するブログパーツです。
正しく設置されるとブログのコメント欄のように、はてなブックマークでのコメントが表示されます。
簡単な設置方法
http://b.hatena.ne.jp/guide/blogparts.select?type=blogparts
から、ブログサービスを選択すると下記のようなブログサービスごとに正しく設定されたJavaScriptが表示されます。
各サービスのブログパーツ設置方法に従って JavaScript をブログに設置してください。
ライブドアブログでの例
<script type="text/javascript" charset="utf-8" src="http://b.hatena.ne.jp/js/bookmark_blogparts.js"></script>
<script type="text/javascript">
HBBlogParts.commentInsertSelector = [ 'div.hatena-bookmark-marker', 'div.article-body-inner', 'div.blogbody div.mainmore', 'div.blogbody div.main', 'div.entry-body-main'];
HBBlogParts.insertPosition = 'after';
HBBlogParts.permalinkSelector = [ 'div.hatena-bookmark-marker a', 'div h3 a', 'h2.title a', 'h2.entry-title a', '.posted a' ];
HBBlogParts.permalinkPathRegexp = /\/archives\/\d+\$/;
HBBlogParts.permalinkAttribute = 'href';
</script>
各設定項目の詳細
以下では、ブログパーツの設定方法について解説します。
<script type="text/javascript">
HBBlogParts.commentInsertSelector = [ 'div.hatena-bookmark-marker', 'div.article-body-inner', 'div.blogbody div.mainmore', 'div.blogbody div.main', 'div.entry-body-main'];
HBBlogParts.permalinkSelector = [ 'div.hatena-bookmark-marker a', 'div h3 a', 'h2.title a', 'h2.entry-title a', '.posted a' ];
HBBlogParts.permalinkAttribute = 'href';
HBBlogParts.permalinkPathRegexp = /\/archives\/\d+\$/;
</script>
上記の部分が各ブログサービス毎に設定を行っている JavaScript になります。
HBBlogParts オブジェクトのプロパティを書き換えることで、no titleに設定のないブログにも対応することができます。以下ではそれぞれのプロパティについて解説します。
HBBlogParts.commentInsertSelector
はてなブックマークのコメントが挿入される位置の基準となるDOM ElementをCSSセレクタで指定します。配列で指定すると、若い要素から順番にDOM Element の取得を試みます。
HBBlogParts.permalinkSelector
ブログのパーマリンクがどの DOM Element に記載されているかをCSSセレクタで指定します。このCSSセレクタによって取得したDOM Element から得た URL をもとに、ブックマークのコメントを取得・表示します。
HBBlogParts.permalinkAttribute
HBBlogParts.permalinkSelector
で取得した要素のどの属性に ブログのパーマリンクのURLが記載されているかを指定します。Aタグを対象としているならば、通常は'href'
で良いでしょう。また、本来属性値ではありませんが、要素が保持しているテキストノードの値を取得する "textNode"
という値も利用できます。
HBBlogParts.permalinkPathRegexp
そのブログのパーマリンクにマッチする正規表現です。ブログ内のパーマリンクページのURLにマッチしそれ以外のページにはマッチしない正規表現が必要です。完璧にそのような仕様を満たす正規表現でなくても動作しますが、表示がおかしくなる可能性があります。
最低限、上記の 4 プロパティが設定されていれば、はてなブックマークコメント表示ブログパーツは動作します。
細かな設定方法
以下ではさらに細かい設定をするためのプロパティについて解説します。これらのプロパティは上記で解説したプロパティと同様に script タグの中で値を代入してください。