してみた。
e でタグ+コメント編集。q で削除。
LDRizeCooperation+localkeymodeで実現。
(function(){
var hbControl = function(is_edit){
var paragraph = liberator.plugins.LDRizeCooperation.LDRize.getParagraphes();
var pos = paragraph.current.position + 1;
var doc = content.window.document;
var n = doc.evaluate('//descendant::h3[@class="entry"]['+pos+']', doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
if (!n) return;
var bmid = n.singleNodeValue.id.replace(/[^\-]+-/,'');
var e = content.document.createEvent("MouseEvents");
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
var cn = doc.evaluate('//span[@class="bookmark-appender-cancel"]', doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (let i=0, l=cn.snapshotLength; i<l ; i++) cn.snapshotItem(i).dispatchEvent( e );
var node = doc.getElementById("delete-"+bmid);
if (!node) return;
var target = is_edit ? node.nextElementSibling : node ;
e.initMouseEvent("mouseover", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
target.dispatchEvent( e );
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
target.dispatchEvent( e );
};
liberator.globalVariables.localKeyMappings=[
[ /b\.hatena\.ne\.jp/, [
['e', function() hbControl(true)], // edit tag and comment
['q', function() hbControl(false)], // delete bookmark
] ],
];
})();
本当はグリモンでMinibuffer.addShortcutKey + feedSomekeys_2.js とかで対応したかったんだけど、直でLDRizeの制御オブジェクトに触る方法がない(一応とれないかがんばった!けどとれねー)→Minibuffer経由で実現できそうだけどやるのが面倒→これでいいや的な感じ。
eval 第二引数があればなー、、、もしくはグリモンで liberator.eval 相当のものがあれば楽になるのに、、、という感じ。
liberator.eval 相当を自前で用意するのもアリっちゃアリなのかもだけど、導入が面倒になるのでスルーしました。
それにしても、このやり方は我ながらかなり無理矢理&適当感大
調べてみたら、結構楽にでけそう