LLWiki正在建设中,欢迎加入我们

MediaWiki:Gadget-HotCat-zh-core.js

来自LLWiki
Bhsd讨论 | 贡献2020年8月22日 (六) 09:32的版本 (Bhsd移动页面User:Bhsd/HotCat.jsMediaWiki:Gadget-HotCat-zh.js,不留重定向:解决HotCat的繁简问题)
跳转到导航 跳转到搜索

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
$(function() {
    const ns = mw.config.get('wgNamespaceNumber');
        nsIds = mw.config.get('wgNamespaceIds');
    if( ns < 0 || // Special pages; Special:Upload is handled differently
        ns === 10 || // Templates
        ns === 274 || // Widget
        ns === 828 || // Module (Lua)
        ns === 8 || // MediaWiki
        ns === 6 && !conf.wgArticleId || // Non-existing file pages
        ns === 2 || // User
        ns % 2 === 1 || // Talk page
        mw.config.get("wgPageContentModel") !== "wikitext" ||
        nsIds &&
        ( ns === nsIds.creator ||
        ns === nsIds.timedtext ||
        ns === nsIds.institution ) ) {
            return;
    }
    const pageName = mw.config.get('wgPageName');
    var api = new mw.Api(),
        request1 = api.get({action:'parse', page:pageName, prop:'categories'}),
        request2 = api.get({action:'query', titles:pageName, prop:'categories'});
    $.when(request1, request2).done(function(data1, data2) {
        const obj1 = data1[0].parse.categories,
            obj2 = data2[0].query.pages[mw.config.get( 'wgArticleId' )].categories;
        var cats = obj1 ? Object.keys(obj1).map((key) => obj1[key]["*"]) : [],
            canonicalCats = obj2 ? Object.keys(obj2).map((key) => obj2[key].title) : [];
        if(canonicalCats.length === 0) { return; }
        api.get({action:'query',
            prop:'info',
            inprop:'varianttitles',
            indexpageids:1,
            titles:canonicalCats.join("|")})
            .then(function(data) {
                const ids = data.query.pageids;
                ids.forEach(function(ele) {
                    var catlink = $('#catlinks a[title="' + data.query.pages[ele].title + '"]');
                    const catVt = data.query.pages[ele].varianttitles,
                        catHans = catVt["zh-hans"].substring(3),
                        catHant = catVt["zh-hant"].substring(3);
                    if(cats.includes(catHans)) {
                        catlink.attr('title','Category:' + catHans);
                        catlink.attr('href',mw.util.getUrl('Category:' + catHans));
                    }
                    else {
                        catlink.attr('title','Category:' + catHant);
                        catlink.attr('href',mw.util.getUrl('Category:' + catHant));
                    }
                    mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
                });
        });
    });
});