/* * ==VimperatorPlugin== * @name pathtraq.js * @description optimize the indicator of Pathtraq add-on. * @description-ja Pathtraq アドオンの表示をいい感じにする。 * @author janus_wel * @version 0.10 * @minversion 2.0pre * @maxversion 2.0pre * ==/VimperatorPlugin== * * LICENSE * New BSD License * * USAGE * this plugin change Pathtraq indicators to non-display, * and display the icon of Pathtraq. * you can use value 'p' in option 'pageinfo'. * it will display ratings of current page. * * refer: http://pathtraq.com/ * * EXAMPLE * default + Pathtraq * :set pageinfo=gfmp * * */ ( function () { // add-on check const doc = window.document; if (!doc.getElementById('pathtraq-status')) { liberator.log('pathtraq.js is need Pathtraq add-on: http://pathtraq.com/install', 0); return; } // favicon var icon = 'data:image/png;base64,'+ 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAAAPFBMVEUJ'+ 'tsHd8vQ3xMyT3+Pv7+9z1dsYu8W/6u3s9/dVzNTo6OjO7/GD2t9k0Nf39/dGyNAov8mh4ub///+i'+ '4+eX1QPaAAAAFHRSTlP/////////////AP////////8A/xAuIvoAAAAJcEhZcwAAHCAAABwgAc0P'+ 'm54AAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzOY1kYDAAAEEXRFWHRYTUw6Y29t'+ 'LmFkb2JlLnhtcAA8P3hwYWNrZXQgYmVnaW49IiAgICIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6'+ 'a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9i'+ 'ZSBYTVAgQ29yZSA0LjEtYzAzNCA0Ni4yNzI5NzYsIFNhdCBKYW4gMjcgMjAwNyAyMjoxMTo0MSAg'+ 'ICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAy'+ 'LzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIK'+ 'ICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAg'+ 'ICAgICAgPHhhcDpDcmVhdG9yVG9vbD5BZG9iZSBGaXJld29ya3MgQ1MzPC94YXA6Q3JlYXRvclRv'+ 'b2w+CiAgICAgICAgIDx4YXA6Q3JlYXRlRGF0ZT4yMDA4LTAxLTAyVDExOjEyOjE0WjwveGFwOkNy'+ 'ZWF0ZURhdGU+CiAgICAgICAgIDx4YXA6TW9kaWZ5RGF0ZT4yMDA4LTAxLTAyVDEzOjU0OjU0Wjwv'+ 'eGFwOk1vZGlmeURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2Ny'+ 'aXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3Jn'+ 'L2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9y'+ 'bWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K'+ 'ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg'+ 'ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg'+ 'ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg'+ 'ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg'+ 'ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg'+ 'ICAgICAgICDwMiY1AAAAfklEQVQYlV3PyxbDIAgE0DFBfMVpe/r//xqQ2EVno17lgOgeoUd8i3VO'+ 'U6EzyQMsCo8OWSBJcVXWDLU3BszIVi+2Ti44UL1aKt4BAFcvKv4AuqF4CT9oG3TYXEP9IgBoV4M1'+ '6wGv0yfTL/sGG7YUsv+AXWR9LeBo0XaDPB+P3E6JCGjvBk1hAAAAAElFTkSuQmCC'; // display icon let panel = doc.createElement('statusbarpanel'); let label = doc.getElementById('pathtraq-app-label'); panel.setAttribute('id', 'panel-pathtraq'); panel.setAttribute('class', 'statusbarpanel-iconic'); panel.setAttribute('src', icon); label.parentNode.appendChild(panel); // register pageinfo let pageRating = doc.getElementById('pathtraq-status-rating-page'); let siteRating = doc.getElementById('pathtraq-status-rating-site'); liberator.modules.buffer.addPageInfoSection( 'p', 'Pathtraq Ratings', function (verbose) { if(verbose) { if (pageRating.value) yield ['Page rating', pageRating.value]; if (siteRating.value) yield ['Site rating', siteRating.value]; } return; } ); // hide elements [ label, pageRating, siteRating, doc.getElementById('pathtraq-status-rating-sep'), ].forEach(function (n) { n.setAttribute('style', 'display: none !important;'); }); } )(); // vim: set sw=4 ts=4 et; n17'>17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
/**
 * ==VimperatorPlugin==
 * @name           bufferecho.js
 * @description    Display results of JavaScript to a buffer(browser) instead of commandline-buffer
 * @description-ja JavaScript実行結果をコマンドライン・バッファではなくバッファ(ブラウザ)に表示
 * @version        0.1
 * ==/VimperatorPlugin==
 */ 
liberator.plugins.buffer_echo = (function(){
var title = "bufferecho results";
var prefix = 'data:text/html,';
function execute(str){
    var result;
    try {
        result = (function(){ return window.eval("with(liberator) {" + str + "}") })();
    } catch (e) {
        result = e.name + ":\n" + e.message;
    }
    return result;
}

commands.addUserCommand(['bufferecho','becho'],'Display results of JavaScript to a buffer(browser)',
    function(args){
        liberator.plugins.buffer_echo.open(args.string, args.bang);
    },{
        completer: function(context) completion.javascript(context)
    },true
);
var manager = {
    append: function(htmlString){
        var body = buffer.evaluateXPath('/html/body').snapshotItem(0);
        body.innerHTML += htmlString;
    },
    open: function(str, forceNewTab) {
        var result = execute(str);
        if (typeof(result) == "object") result = util.objectToString(result,true);
        var data = '<div><h1>' + util.escapeHTML(str) + '</h1><pre>' + result + '</pre></div>';
        if (buffer.title == title && !forceNewTab){
            this.append(data);
            return;
        }
        var where = buffer.URL == "about:blank" ? liberator.CURRENT_TAB : liberator.NEW_TAB;
        liberator.open([prefix + '<title>'+title+'</title>' + data], where);
    }
};
return manager;
})();
// vim:sw=4 ts=4 et: