■
作者のシロさんにコメントいただいた通り、以下のメモのような小細工をしなくても今はもういろいろできます。
LDRize.getLinkNode が重要。とおもったけどgetLinkURLもあった。どっちが何をしてるのかよくわかんない。
よめばわかった。
getLinkNodeに渡されるnodeはparagraphのノード。getLinkURLはattributeとしてリンク先のURLを保持しているノード自身を返す。getLinkNodeも単体で呼ばれたりする。nodeが常にnullでくるならLDRize.current_paragraphみればいいからgetLinkURLに細工するのですむけど...
動かしてみて見る。
ピンを立てるときは常にnull. getLinkURLが呼び出される。これだ!
単体で呼ばれることがあるけどいつなのかは不明。
getLinkNode : function(node){ if(!LDRize.info['link']) return; node = node || LDRize.current_parapraph; if(!node) return false; var links = $X(LDRize.info['link'], node); if(!links || links.length == 0) return; return links[0]; }, getLinkURL : function(node){ if(!LDRize.current_parapraph) LDRize.scrollNext(); var link = LDRize.getLinkNode(node); if(!link) return false; var url; if(link.nodeName.toLowerCase() == "embed"){ url = link.src; }else{ url = link.href; } return url; },
linkのルール記述次第ではある。
単純にtumblrのルール記述がよくないだけ?
'o'に渡すためのurlを取り出すためのxpathが書かれているので(取り出すのはurl自体ではなくてurlを把持しているノード。embedのときはsrcを、その他のときはhrefを取り出す。embed, a を対象としてる。
reblog用のurlを抽出してるわけじゃないのでなんか細工が必要。
window.LDRize.command の command: function ( urls ) {
はLDRize.getLinkNodeの結果の文字列が帰ってくる。ちょっとやりにくい。
LDRize.reblog.user.js だ。
getLinkNodeを上書きしてcommandの中のforEachでformつくってpostさせる。特権あったら楽ができるんだけどな...