個別ページではてなスターがきちんと表示されていなかった件。


はてなスターを導入してしばらく立ちますが、
どうも個別ページでの表示が怪しいなぁ、と思ってたんですね。
コメントアイコンも出ないし。

でも怪しいなぁとは思っていたんだけど、スターそのものは表示されてたし、
クリックすれば☆も付けられたんであんまり気にしてませんでした。
さっきまで。


で、さきほど、そのページのスター一覧を表示させるブックマークレットをでっち上げて試してたら、
どうもこっちで付いてる☆が表示されなかったり、
はてなブックマークのエントリページで付いてる☆がこっちには表示されていなかったりして、
なんだかおかしいぞ、と。


結論から言うと、要するに指定された領域に複数のリンクがあり、
はてなスターがパーマリンクを誤って受け取らされていたんですね。
ちょっと考えれば当たり前のことなんだけど。
どうやら今まで個別ページ側で見えていたスターは、
その個別ページに付けられたスターではなくて、
そのページをはてなブックマークに登録するためのページに付けられた、
スターになってしまっていた模様。
(つまり、http://b.hatena.ne.jp/append?xxx)

なんてこったい/( ^o^ )?


今までスター付けてくれていた方、大変申し訳ありません。。



解決策

というわけで個別ページ内に新たに次のコードを追加。

<span class="hatenastar"><a href="<$MTEntryPermalink$>"></a></span>

んでもってはてなスターに関するコードの部分を、

Hatena.Star.EntryLoader.headerTagAndClassName = ['div', 'EntryTitle'];

↓

Hatena.Star.EntryLoader.headerTagAndClassName = ['span', 'hatenastar'];

のように変更。

で、個別ページとインデックスを再構築。


何となくクラス名がかぶりそうな気もしないでもないですが、
この辺見る限りでは『hatena-star』がはてなの命名規則っぽいので、
まぁ大丈夫かなと。

もっとカスタマイズをしよう – はてなスター日記


それにしても考えてたより遙かに、はてなスターってシンプルなんだな。
そうかそうか…