注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
// 修改自[[Special:PermaLink/45972864]]
(function () {


    // var VERSION = '3d1d3e5';
    var PREFIX = 'User:94rain/Twinkle/';
    var rebuildcache = true;
    var tests = [];

var ajax = function (title) {
    return $.ajax({
        url: 'https://zh.wikiversity.org/w/index.php?title=' + title + '&action=raw&ctype=text/javascript',
        dataType: 'text'
    });
};

var load = function (p) {
        var done = function (data) {
            if (rebuildcache || !localStorage['A64Twinkle_' + p.name]) {
               localStorage['A64Twinkle_' + p.name] = data;
            }
        };
    if (p.test) {
        return ajax(PREFIX + p.name).done(done);
    }
    return ajax('MediaWiki:Gadget-' + p.name).done(done);
};

    var message = function (text) {
        console.log('[A64Twinkle]', text);
    //    $('#simpleSearch input[type="search"]').attr('placeHolder', text);
    };

    tests.push({name: 'morebits.js',             test: true});
    tests.push({name: 'twinkle.js',              test: true});
    tests.push({ name: 'select2.min.js', test: true });
    // tests.push({name: 'modules/twinklediff.js',          test: true});
    // tests.push({name: 'modules/twinklefluff.js',         test: true});

//    tests.push({name: 'modules/twinklearv.js',           test: true});
//    tests.push({name: 'modules/twinklewarn.js',          test: true});
//    tests.push({name: 'modules/friendlyshared.js',       test: true});
//    tests.push({name: 'modules/friendlytag.js',          test: true});
    tests.push({name: 'modules/twinklespeedy.js',        test: true});
//    tests.push({name: 'modules/twinkleunlink.js',        test: true});
//    tests.push({name: 'modules/friendlytalkback.js',     test: true});
//    tests.push({name: 'modules/twinklebatchdelete.js',   test: true});
//    tests.push({name: 'modules/twinklebatchundelete.js', test: true});
//    tests.push({name: 'modules/twinkleblock.js',         test: true});
//    tests.push({name: 'modules/twinkleclose.js',         test: true});
   tests.push({name: 'modules/twinkleconfig.js',        test: true});
//    tests.push({name: 'modules/twinklecopyvio.js',       test: true});
    // tests.push({name: 'modules/twinkledelimages.js',     test: true});
//    tests.push({name: 'modules/twinkleimage.js',         test: true});
//    tests.push({name: 'modules/twinkleprotect.js',       test: true});

    tests.push({name: 'modules/twinklexfd.js',           test: true});
    mw.loader.using(['mediawiki.api', 'jquery.ui', 'moment']).done(function () {
        mw.loader.load('https://zh.wikipedia.org/w/index.php?title=User:Xiplus/Twinkle/morebits.css&action=raw&ctype=text/css', 'text/css');
        mw.loader.load('https://zh.wikipedia.org/w/index.php?title=User:Xiplus/Twinkle/select2.min.css&action=raw&ctype=text/css', 'text/css');
        mw.loader.load('https://zh.wikipedia.org/w/index.php?title=User:Xiplus/Twinkle/twinkle.css&action=raw&ctype=text/css', 'text/css');
        var i=0;
        var finished = 0;
        var code = [];

        // all
        message('Loading A64TW...');
        var promises = [];
        var done = function (x) {
            return function (data) {
                finished++;
                // message('Loading A64TW... (' + finished + '/' + tests.length + ')');
                code[x] = data;
            };
        };
        for (i=0; i<tests.length; i++) {
            promises.push(load(tests[i]).done(done(i)));
        }
        $.when.apply($, promises).done(function () {
            // localStorage.A64Twinkle_version = VERSION;
            eval(code.join('\n;\n'));
            message('Twinkle Done');
        });
    });
})();