[2009-08-16-2] のバージョンアップ。

「twitter でつぶやくtwittertubuyaku 」ボタンに加え、「はてなブックマークb_entry 」と
「livedoor クリップlivedoorcrip_append 」ボタンも付けました。

「はてなブックマーク」はそろそろ使おうかなと思っていましたが、
livedoor のアカウントは以前破棄したので、このためだけにアカウントを
再取得しました。

今回も chalow 本体の修正です。chalow ユーザ向けに、オリジナ
ル(chalow-1.0.tar.gz)の cl.conf と chalow へのパッチを貼り付けてお
きますね。[2009-08-16-2] のパッチよりも、こちらのパッチのほうが拡張
性あるのでオススメです。

--- cl.conf.org	2007-10-19 21:38:22.000000000 +0900
+++ cl.conf	2009-08-19 21:18:09.000000000 +0900
@@ -315,7 +315,7 @@
 $item_template = << "EACHITEM"
 <!-- start:<TMPL_VAR name=ymdi> -->
 <div class="section">
-<h3 class="subtitle"><TMPL_VAR name=header> <TMPL_VAR name=cat></h3>
+<h3 class="subtitle"><TMPL_VAR name=header> <TMPL_VAR name=cat> <TMPL_VAR name=sbm></h3>
 <p><TMPL_VAR name=content></p>
 <TMPL_IF name=readmore>
 <p>《<a href="<TMPL_VAR name=url>">続きを読む</a>》</p>
--- chalow.org	2007-10-19 23:15:01.000000000 +0900
+++ chalow	2009-08-19 22:10:37.000000000 +0900
@@ -586,6 +586,7 @@
     $t->param(content => $ccc);
     $t->param(header => $ih);
     $t->param(cat => $catstr);
+    $t->param(sbm => make_sbm_link_html($e->{$i}{h}, $item_url));
     $t->param(author => $e->{$i}{a});
     $t->param(referrer => join(" ", @inside_refs));
     $t->param(id => $item_id);
@@ -778,6 +779,7 @@
 	    $t->param(header_text => $item->{ho});
 	    $t->param(header => $item->{h});
 	    $t->param(cat => $catstr);
+	    $t->param(sbm => make_sbm_link_html($item->{h}, $item_url));
 	    $t->param(author => $item->{a});
 	    $t->param(referrer => join(" ", @inside_refs));
 	    $t->param(id => $item_id); # 200101011
@@ -1401,6 +1403,37 @@
 }


+### ソーシャルブックマーク用のリンクを作る。
+sub make_sbm_link_html {
+    my ($ih, $item_url) = @_;
+
+    my $item_url_full = $clog_url . $item_url;
+    my $link_html = "";
+
+    ### はてなブックマーク用のリンクを作る。
+    $link_html .= qq(<a href="http://b.hatena.ne.jp/entry/$item_url_full">).
+	qq(<img src="image/b_entry.gif" style="border:none" />).
+	qq(<img src="http://b.hatena.ne.jp/entry/image/$item_url_full" style="border:none" /></a>);
+
+    ### livedoor クリップ用のリンクを作る。
+    $link_html .= qq(<a href="http://clip.livedoor.com/page/$item_url_full">).
+	qq(<img src="image/livedoorcrip_append.gif" alt="livedoor clip" style="border:none" />).
+	qq(<img src="http://image.clip.livedoor.com/counter/$item_url_full" style="border:none" /></a>);
+
+    ### Tweeter 用のリンクを作る。
+    my $statusstr = $ih;
+    to_utf8_cl(\$statusstr);
+    $statusstr =~ s/([^0-9a-z_ ])/'%'.unpack('H2', $1)/gei;
+    $statusstr =~ s/\s$//;
+    $statusstr =~ s/\s/%20/g;
+    $link_html .= qq(<a href="http://twitter.com/home?status=%22$statusstr%22%20$item_url_full%20%23masutaka%20">).
+	qq(<img src="image/twittertubuyaku.png" alt="twitter" border="0" style="border:none").
+	qq( alt="つぶやく" title="つぶやく" /></a>);
+
+    return $link_html;
+}
+
+
 ### 指定されたファイルへ文字列を出力
 sub output_to_file {
     my ($fname, $contp) = @_;
  • 画像ファイル b_entry livedoorcrip_append twittertubuyaku は image ディレクトリに置いて下さい。
  • Tweeter の %23masutaka は、適当な文字列に置き換えて下さい。

追記(2009-09-14):
はてなブックマークな人は、Firefox アドオン使っているだろうというこ
とで、Twitter のつぶやきボタン以外、止めました。

追記(2009-10-26):
やっぱり、上記全てのボタンを使うことにしました。