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’に移動する方式。ポスト上部のブックマークボタンをクリックするとサイドバーのリストに日時付きでブックマークが追加されるようになっている。リッチ。@match
にhttp://www.tumblr.com/tagged*
なども含まれているからタグ検索画面でも使えそうに思えるが、ダッシュボード用のリンクしか生成されない。作者は自作のTumblr用ユーザースクリプトをまとめたMissing eという拡張を公開しており、こちらでは改善されているのかもしれない。試していない。
また、Tumblr Tornadoは単体で複数の機能を提供するユーザースクリプトだが、auto pagingするとロケーションバーを書き換える機能がある。潜っている位置を保存したければ何も考えずにブックマークするだけでいい。上記のブックマークレットをダッシュボード以外で動作させるにあたって、Tumblr Tornadoのenhistory
関数が参考になった。
というわけで、わざわざ作る必要もなかった気がしないでもないが、作ってしまったので公開する。ユーザースクリプトをインストールするのが面倒な人とかには需要があるかもしれない。
関連
- vzvu3k6k/tumblr-set_dashboard_permalink_as_scroll.user.js - GitHub - スクロールに応じてダッシュボードのpermalinkをlocationに設定するユーザースクリプト