書いてみた | |
:js commandline.echo(template.commandOutput(<><img src={tabs.getTab().__thumbnail.toDataURL()}/></>),null,commandline.FORCE_SINGLELINE)
_libly.jsが入っていると割と格好よくechoされる
commands.addUserCommand(
["thumbnail"],
"View Thumbnails",
function(args){
if(args != "") {
liberator.open(args.string);
}
},
{
count: false,
completer: function(context, args) {
let filter = context.filter;
context.keys = {title: 'title', thumbnail: 'thumbnail', url: 'url', text:'text'};
context.process = [templateThumbnail,function(obj){return obj.url}];
context.title = ['Buffer','URL'];
context.completions = generateCandidates();
}
},
true
);
function templateThumbnail(obj) {
return <>
<img src={obj.thumbnail}/>{obj.title}
</>;
}
function generateCandidates() {
let allTabInfo = [];
let index = 0;
for each ( [,tab] in tabs.browsers ) {
let url = tab.currentURI.spec;
let title = tab.contentTitle;
let getTab = tabs.getTab(index++);
let thumbnail = ('__thumbnail' in getTab) ? getTab.__thumbnail.toDataURL() : "";
let tabInfo = {
"text": index + ":",
"url" : url,
"thumbnail" : thumbnail,
"title" : title,
}
allTabInfo = allTabInfo.concat(tabInfo);
}
return allTabInfo;
}
エラーでたので報告です。
コメントありがとうございます!
>> ワンライナーのほうは、getTab()→getTab(数字) ではないでしょうか?
一応、ソースを見る限り、数字を省略しても大丈夫なはずなんですが・・・
http://code.google.com/p/vimperator-labs/source/browse/common/content/tabs.js?r=7c7331c0ad121902689d067449dd091e45c41f7c#182
おそらくエラーはタブを開いたばかりで__thumbnailが作られていなかったからではないかと思いますが、間違っていたら申し訳ないです
何も考えずに、開いたtabで ワンライナー走らせてました。orz
お騒がせしました。