放置していたtumblrを再動させつつあるので、やっつけbookmarklet書いた。

選択範囲からそれっぽい引用HTMLを生成

javascript:(function(d,t,s,r,f){t.appendChild(d.createTextNode(['<blockquote%20title="'+document.title+'"%20cite="'+location.href+'"><dl>','<dt>'+f(s.shift())+'</dt>',(s.length>0?'<dd><pre>'+s.map(function(v){v=f(v);v=v.replace(r,'<a%20href="$1;">$1;</a>');return%20v}).join('\n')+'</pre></dd>\n':'')+'</dl></blockquote>'].join('\n')));with(t.style){position='fixed';bottom=left=0;zIndex=999;width='90%';height='9em'}d.body.appendChild(t);t.addEventListener('blur',function(){this.parentNode.removeChild(this)},false);t.select()})(document,document.createElement('textarea'),getSelection().toString().split(/\n/).filter(function(v)v),/(https?:\/\/[\-_.!~*\'()\w;\/?:\@&=+\$,%#]+)/g,function(s)s.replace(/^\s+|\s+$/,''))

cite属性値からanchor要素を生成

昔からあるやつです。僕はFirefoxを使っていて、CSSの擬似要素でcontent:attr(cite)とかされてても嬉しくないので。

javascript:(function(d,q){Array.prototype.slice.apply(q('blockquote,q')).forEach(function(b){b.appendChild(d.createTextNode(b.cite))})})(document,function(q)document.querySelectorAll(q))