Typoに「はてなスター」と「はてなブックマーク」を組み込む

投稿者 おおかゆか 2008-11-27 10:32:00 GMT

ブログに「はてなスター」と「はてなブックマーク」を設置してみた。

このブログの目的は一番に自分の勉強のため。とは言えど、全く他の誰にも読まれてないと思うとモチベーションもなかなか維持しづらい。
ブログであるからには当然、コメントとトラックバックの機能をこのTypoも備えてはいるものの、敷居が高くてなかなか使う人もいない。自分もあまり使わないし。

手っ取り早く読者のレスポンスを得る方法は、ソーシャルブックマークへの登録をしやすくしてあげること。
日本で一番ユーザー数の多いソーシャルブックマークは、言うまでもなく「はてなブックマーク」。普段から自分でもけっこう使っているので馴染みもある。

というわけで、その「はてなブックマーク」とついでに「はてなスター」をTypoに組み込んでみることにした。
その方法をここで紹介する。

1. はてなブックマークの設置

まずは画像をダウンロード。

$ mkdir -p ${TYPO_DIR}/public/images/vendor/hatena
$ cd ${TYPO_DIR}/public/images/vendor/hatena
$ wget http://d.hatena.ne.jp/images/b_entry.gif

Typoのテンプレートを編集。

$ vi ${TYPO_DIR}/app/views/articles/read.html.erb
--
  <%= article_links @article %>
--
  <%= article_links @article %>
  <%= link_to image_tag(‘/images/vendor/hatena/b_entry.gif’, :size =>’16x12’, :alt => ‘はてなブックマーク’, :title => ‘はてなブックマーク’), ‘http://b.hatena.ne.jp/entry/’ + @article.permalink_url %> <%= link_to image_tag(‘http://b.hatena.ne.jp/entry/image/’ + @article.permalink_url, :alt => ‘はてなブックマークでの登録数’, :title => ‘はてなブックマークでの登録数’), ‘http://b.hatena.ne.jp/entry/’ + @article.permalink_url %>
--
に変更。
$ vi ${TYPO_DIR}/app/views/articles/index.html.erb
--
<%= article_links article %>
--
<%= link_to image_tag(‘/images/vendor/hatena/b_entry.gif’, :size =>’16x12’, :alt => ‘はてなブックマーク’, :title => ‘はてなブックマーク’), ‘http://b.hatena.ne.jp/entry/’ + article.permalink_url %> <%= link_to image_tag(‘http://b.hatena.ne.jp/entry/image/’ + article.permalink_url, :alt => ‘はてなブックマークでの登録数’, :title => ‘はてなブックマークでの登録数’), ‘http://b.hatena.ne.jp/entry/’ + article.permalink_url %>
--
に変更。

あとはアプリケーションサーバを再起動して、Typo adminの「設定」からキャッシュを削除すれば、はてなブックマークのボタンと登録数が各記事の下に表示されるようになる。

 

2. はてなスターの設置

はて☆すたは、はてブよりもけっこう手強い。
まず、Typo adminの「Themes」→「Theme editor」から、default.html.erbを編集。
タグで囲まれている間の任意の場所に、

  <!-- Hatena star script -->
  <script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
  <script type="text/javascript">
Hatena.Star.EntryLoader.headerTagAndClassName = [‘h2’,null];
Hatena.Star.Token = ’my_token_codes’;
</script>
  <!-- /Hatena star script -->

というコードを記述して、「save」をクリック。(※my_token_codesは、はてなスターでブログを登録すると表示されるトークンコード。)
さらに「設定」からキャッシュの削除を行えば、はてなスターがブログに表示されるようになる。

…はずだったんだけど、トップページは表示されているものの、各記事のページはなぜかうまくいかない。
この理由は、HatenaStar.jsがリンクなしの記事タイトルを想定していないため。
ユーザビリティ的にはTypoのリンクなしのほうが正解なんだけど、JavaScriptを書き換えるほどの気力がないというか、Typoのほうを合わせたほうがラクなのでそうすることにする。

$ vi ${TYPO_DIR}/app/views/articles/read.html.erb
--
<h2><%=h @article.title %></h2>

<h2><%= link_to @article.title, @article.permalink %></h2>

のように変更。

あとは例のごとくアプリケーションサーバを再起動して、Typo adminの「設定」からキャッシュを削除。
すると今度こそ各記事のページでも、はてなスターが記事タイトルの横に表示されるようになる。

 

おまけ. アイコンカラーの変更

1と2の作業で、はてなブックマーク及びはてなスターがブログに表示されるようになった。

だがしかし。
どうにも色合いが不釣り合いというか、サイトの統一感を乱している。このサイトで使っているテーマの「Jazz Café」は全体的にワインレッドを基調としているため、はてなの青、それも原色ど真ん中の青は著しく浮いてしまう。

はてなブックマークの青が浮いている

なのでここは、アイコンに手を加えてサイトに似合う色調に変更する。
アイコン自体ははてなからダウンロードした上でGIMPを使って色調を変更して、${TYPO_DIR}/public/images/vendor/hatenaディレクトリに格納しておく。
アイコンファイルは、

の5つ。

さらにTypo adminの「Themes」→「Theme editor」から、default.html.erbを編集。
タグで囲まれている間の任意の場所に、

  <%= stylesheet_link_tag "/stylesheets/vendor/hatena", :media => ‘all’  %>

というコードを記述して、「save」をクリック。
次に、

$ mkdir ${TYPO_DIR}/stylesheets/vendor
$ vi ${TYPO_DIR}/stylesheets/vendor/hatena.css
--
.hatena-star-star-image {
  background-image: url(/images/vendor/hatena/star.gif);
}
.hatena-star-add-button-image {
  background-image: url(/images/vendor/hatena/add.gif);
}
.hatena-star-comment-button-image {
  background-image: url(/images/vendor/hatena/comment.gif);
}
.hatena-star-comment-button-image-active {
  background-image: url(/images/vendor/hatena/comment_active.gif);
}
--
を作成。

これで完了。ブラウザで確認してみると、

はてなのアイコン色調を赤に

うんうん、なかなかいい感じ。これでいこう。

以上で作業は完了。テストのために自分で自分の記事にスターつけちゃってるけど、それはご愛嬌ということで。
一度つけたスターやコメントは、自分でも消せない仕様になってるので。

カテゴリ ,  | コメント(2) | トラックバック(0) はてなブックマークへ はてなブックマークでの登録数

コメント

  1. おおかゆか 発言 1 day later:

    > 一度つけたスターやコメントは、自分でも消せない仕様になってるので。

    と書いたが、これはウソ。ごめんなさい。

    その後スターはマウスカーソルをその上にしばらく置いておくと、「この☆を消しますか?」というダイアログが出ることを発見。
    でもひとつくらい残してても別にいいかと思うので残しておく。

  2. おおかゆか 発言 3 days later:

    画像は自分でカスタマイズしなくても、

    みたいのはあったみたい。
    まあでも色違いのスターはないようだし、Bマークも原色赤じゃなくてワインレッドがほしかったので、作った意味はあったけど。

トラックバック

トラックバックリンク:
http://ja.verbmode.net/trackbacks?article_id=23

(leave url/email »)

   コメントのマークアップヘルプ 前のコメント