Tumblrのダッシュボードとかで潜った位置を記録して再開するブックマークレット

追記(2013/06/09)

アップデートしたものをHatena::Letに置いた。Tumblr dashboard bookmark - Hatena::Let


[僕は”あした”から”ホンキ”をだす, ある時刻のdashboardに戻る方法](http://cineraria.tumblr.com/post/31330063418/dashboard “僕は”あした”から”ホンキ”をだす, ある時刻のdashboardに戻る方法”)に触発されてブックマークレットを作った。開くと今読んでいるポストの上部にリンクが追加される。そのリンクをブックマークしておくと、そこからダッシュボード潜りを再開できる。auto pagingする場所ではだいたい動くので、タグ検索画面(http://www.tumblr.com/tagged/bookmarklet)とかでも使える。

元ソースは以下。Tumblrで使われているprototype.jsに依存している。Tumblr Tornadoや、Tumblrのstart_observing_key_commands関数を参考にした。


(function(){
    var currentPosition = document.viewport.getScrollOffsets().top;
    var currentPost = $$('#posts .post[id^="post_"]').detect(function(post){
        return Element.cumulativeOffset(post).top > currentPosition;
    });

    var id = (parseInt(currentPost.id.replace("post_", ""), 10) + 1),
        href = window.next_page.replace(/\d+$/, "") + id,
        label = href.replace(/^http:\/\/www\.tumblr\.com\//, ""),
        link = new Element('a', {href: href}).update(label);
    currentPost.insert({top: link});
})();

ダッシュボードだけで動作するバージョンを作ってからUserscripts.orgを眺めてみたら似たスクリプトがあった。

はじめの2つはブックマークしたところまでひたすらスクロールしてロードしつづける方式。

最後のTumblr Bookmarker for Greasemonkeyは’http://www.tumblr.com/dashboard/1000/’ + ブックマークしたID + ‘?lite’に移動する方式。ポスト上部のブックマークボタンをクリックするとサイドバーのリストに日時付きでブックマークが追加されるようになっている。リッチ。@matchhttp://www.tumblr.com/tagged*なども含まれているからタグ検索画面でも使えそうに思えるが、ダッシュボード用のリンクしか生成されない。作者は自作のTumblr用ユーザースクリプトをまとめたMissing eという拡張を公開しており、こちらでは改善されているのかもしれない。試していない。

また、Tumblr Tornadoは単体で複数の機能を提供するユーザースクリプトだが、auto pagingするとロケーションバーを書き換える機能がある。潜っている位置を保存したければ何も考えずにブックマークするだけでいい。上記のブックマークレットをダッシュボード以外で動作させるにあたって、Tumblr Tornadoのenhistory関数が参考になった。

というわけで、わざわざ作る必要もなかった気がしないでもないが、作ってしまったので公開する。ユーザースクリプトをインストールするのが面倒な人とかには需要があるかもしれない。

関連