2005-12-22 Thu

Nucleus の Bookmarklet をカスタマイズ

はてなブックマークから、Nucleus で Web Bookmark を管理するようにしましたが、さらにはてなブックマークに近づけるべく、「この記事を含むはてなブックマーク」ボタンを自動で付加するように、Bookmarklet を改造しました。

ここまでするなら、素直にはてなブクマを使っておけ、という感じですが、いつものように好奇心をおさえられませんでした。以下、改造点です。なお、この改造は、自分の記事のブックマーク状況を調べるのではありませんので、ご注意ください。

「nucleus/bookmarklet.php」内の「bm_doShowForm」関数内に「$logje」という変数があります。デフォルトでは以下のようになっていると思います。

$logje = '';
if ($log_text)
	$logje .= '<blockquote><div>"' . htmlspecialchars($log_text) .'"</div></blockquote>' . "\n";
if (!$log_linktitle)
	$log_linktitle = $log_link;
if ($log_link)
	$logje .= '<a href="'. htmlspecialchars($log_link) . '">'. htmlspecialchars($log_linktitle).'</a>';

$log_text
開いているページの選択しているテキスト。

$log_link
開いているページの URI。

$log_linktitle
開いているページのタイトル。

となっています。これを以下のように修正。

$logje = '';
if (!$log_text) {
	$logje .= '<a href="'. htmlspecialchars($log_link) . '">'. htmlspecialchars($log_linktitle).'</a>'.' <a href="http://b.hatena.ne.jp/entry/' . htmlspecialchars($log_link) . '"><img src="http://blog.heartfield-web.com/skins/heartfield/images/b_entry.gif" alt="この記事を含むはてなブックマーク" title="この記事を含むはてなブックマーク" /></a>';
} else {
	if (!$log_linktitle) {
		$log_linktitle = $log_link;
	}
	if ($log_link) {
		$logje .= '<blockquote>' . htmlspecialchars($log_text) . '<p class="quoteFooter"><cite><a href="'. htmlspecialchars($log_link) . '">'. htmlspecialchars($log_linktitle).'</a></cite> </p></blockquote>' . "\n";
	}
}

まず、開いているページでなにも選択していない場合は、ただ単にそこへのリンクを作成し、そのリンクを含むはてなブックマークのページへのリンクも作成しています。なにかテキストを選択している時は、そこを引用し、そこへのリンクは「blockquote」タグ内の「cite」タグで「引用元」としてリンクしています。

ついでですが、Bookmarklet 経由で記事を書こうとすると、記事のタイトルが開いているページのタイトルと同じになるという恐ろしい処理をするので、

$item['title'] = '';

としています。

こうして記事するまで気付きませんでしたが、引用元にも「この記事を含むはてなブックマーク」ボタンをつけられますね。というわけで、今後当サイトが引用する記事にはボタンがつくことになると思います。

2005-12-22 Thu by pushman - Category: Nucleus
Keyword: /
Comment: 0 - TrackBack: 0

このページの先頭に戻る

「Nucleus の Bookmarklet をカスタマイズ」へのツイート

「Nucleus の Bookmarklet をカスタマイズ」へのトラックバック

TrackBack URL:

「Nucleus の Bookmarklet をカスタマイズ」へのコメント





このページの先頭に戻る