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

“MediaWiki:Gadget-HotCat-zh-core.js”的版本间差异

来自LLWiki
跳转到导航 跳转到搜索
标签移动版网页编辑 移动版编辑
第4行: 第4行:
*/
*/
$(function() {
$(function() {
const ns = mw.config.get('wgNamespaceNumber');
const ns = mw.config.get('wgNamespaceNumber'),
if( mw.config.get('wgCanonicalSpecialPageName') === 'Upload' ) {
specialPageName = mw.config.get('wgCanonicalSpecialPageName'),
categories = mw.config.get('wgCategories');
mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
if ( (ns < 0 && specialPageName !== 'Upload') || // Special pages; Special:Upload is handled differently
return;
}
if( ns < 0 && // Special pages; Special:Upload is handled differently
ns === 10 || // Templates
ns === 10 || // Templates
ns === 274 || // Widget
ns === 274 || // Widget
ns === 828 || // Module (Lua)
ns === 828 || // Module (Lua)
ns === 8 || // MediaWiki
ns === 8 || // MediaWiki
ns === 6 && !mw.config.get('wgArticleId') || // Non-existing file pages
ns === 2 || // User
ns === 2 || // User
ns % 2 === 1 || // Talk page
ns % 2 === 1 || // Talk page
!mw.config.get('wgArticleId') || // Non-existing file pages
mw.config.get("wgPageContentModel") !== "wikitext" ||
mw.config.get("wgPageContentModel") !== "wikitext" ||
mw.config.get('wgAction') != 'view' ) {
mw.config.get('wgAction') != 'view' ) {
return;
return;
}
}
if ( categories.length === 0) {
const pageName = mw.config.get('wgPageName');
mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
var api = new mw.Api(),
return;
request1 = api.get({action:'parse', page:pageName, prop:'wikitext', formatversion:2}),
}
request2 = api.get({action:'query', titles:pageName, prop:'categories', formatversion:2, cllimit:'max'});
const pageName = mw.config.get('wgPageName'),
api = new mw.Api(),
canonicalCats = categories.map(ele => 'Category:' + ele).join('|');
var request1 = api.get({action:'parse', page:pageName, prop:'wikitext', formatversion:2}),
request2 = api.get({action:'query', prop:'info', inprop:'varianttitles', formatversion:2, titles:canonicalCats, converttitles:1});
$.when(request1, request2).then(function(data1, data2) {
$.when(request1, request2).then(function(data1, data2) {
const obj1 = data1[0].parse.wikitext,
const obj1 = data1[0].parse.wikitext,
obj2 = data2[0].query.pages[0].categories;
obj2 = data2[0].query.pages,
var cats = [...obj1.matchAll(/\[\[(?:category|分类|分類):(.*?)(?:\|.*)?]]/ig)].map((ele) => ele[1]),
cats = [...obj1.matchAll(/\[\[\s*(?:category|分类|分類)\s*:\s*(.*?)(?:\|.*)?\s*]]/ig)]
canonicalCats = ( obj2 ? Object.keys(obj2).map((key) => obj2[key].title) : [] );
.map( ele => ele[1].charAt(0).toUpperCase() + ele[1].slice(1).replace(/_/g, ' ') );
if(canonicalCats.length === 0) {
window.hotcat_preload = obj1;
obj2.forEach(function(ele) {
mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
return;
const catVt = ele.varianttitles;
}
if (!catVt) { return; }
const catHans = catVt["zh-hans"].substring(3),
api.get({action:'query', prop:'info', inprop:'varianttitles', formatversion:2, titles:canonicalCats.join("|")})
.then(function(data) {
catHant = catVt["zh-hant"].substring(3),
catlink = $('#catlinks a[title="Category:' + catHans + '"], #catlinks a[title="Category:' + catHant + '"]');
data.query.pages.forEach(function(ele) {
var catlink = $('#catlinks a[title="' + ele.title + '"]');
if (catlink.length === 0) { return; }
const catVt = ele.varianttitles;
if (cats.includes( catHans )) {
if(!catVt) { return; }
catlink.attr('title','Category:' + catHans);
const catHans = catVt["zh-hans"].substring(3),
catlink.attr('href','/zh/Category:' + catHans);
}
catHant = catVt["zh-hant"].substring(3);
else {
if(cats.includes( catHans.replace(/ /g,'_') ) || cats.includes( catHans )) {
catlink.attr('title','Category:' + catHans);
catlink.attr('title','Category:' + catHant);
catlink.attr('href','/zh/Category:' + catHans);
catlink.attr('href','/zh/Category:' + catHant);
}
}
else {
catlink.attr('title','Category:' + catHant);
catlink.attr('href','/zh/Category:' + catHant);
}
});
mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
});
});
mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
});
});
});
});

2020年11月10日 (二) 21:43的版本

/**
 * @Function: 修改HotCat以识别繁简分类
 * @Contributors: [[User:Bhsd]]; [[User:葫芦又]]
 */
$(function() {
    const ns = mw.config.get('wgNamespaceNumber'),
        specialPageName = mw.config.get('wgCanonicalSpecialPageName'),
        categories = mw.config.get('wgCategories');
    if ( (ns < 0 && specialPageName !== 'Upload') || // Special pages; Special:Upload is handled differently
        ns === 10 || // Templates
        ns === 274 || // Widget
        ns === 828 || // Module (Lua)
        ns === 8 || // MediaWiki
        ns === 2 || // User
        ns % 2 === 1 || // Talk page
        !mw.config.get('wgArticleId') || // Non-existing file pages
        mw.config.get("wgPageContentModel") !== "wikitext" ||
        mw.config.get('wgAction') != 'view' ) {
        return;
    }
    if ( categories.length === 0) {
        mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
        return;
    }
    const pageName = mw.config.get('wgPageName'),
        api = new mw.Api(),
        canonicalCats = categories.map(ele => 'Category:' + ele).join('|');
    var request1 = api.get({action:'parse', page:pageName, prop:'wikitext', formatversion:2}),
        request2 = api.get({action:'query', prop:'info', inprop:'varianttitles', formatversion:2, titles:canonicalCats, converttitles:1});
    $.when(request1, request2).then(function(data1, data2) {
        const obj1 = data1[0].parse.wikitext,
            obj2 = data2[0].query.pages,
            cats = [...obj1.matchAll(/\[\[\s*(?:category|分类|分類)\s*:\s*(.*?)(?:\|.*)?\s*]]/ig)]
                .map( ele => ele[1].charAt(0).toUpperCase() + ele[1].slice(1).replace(/_/g, ' ') );
        window.hotcat_preload = obj1;
        obj2.forEach(function(ele) {
            const catVt = ele.varianttitles;
            if (!catVt) { return; }
            const catHans = catVt["zh-hans"].substring(3),
                catHant = catVt["zh-hant"].substring(3),
                catlink = $('#catlinks a[title="Category:' + catHans + '"], #catlinks a[title="Category:' + catHant + '"]');
            if (catlink.length === 0) { return; }
            if (cats.includes( catHans )) {
                catlink.attr('title','Category:' + catHans);
                catlink.attr('href','/zh/Category:' + catHans);
            }
            else {
                catlink.attr('title','Category:' + catHant);
                catlink.attr('href','/zh/Category:' + catHant);
            }
        });
        mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
    });
});