LLWiki正在建设中,欢迎加入我们!
“MediaWiki:Gadget-HotCat-zh-core.js”的版本间差异
跳转到导航
跳转到搜索
小 标签:移动版网页编辑 移动版编辑 |
|||
第4行: | 第4行: | ||
*/ |
*/ |
||
$(function() { |
$(function() { |
||
const ns = mw.config.get('wgNamespaceNumber') |
const ns = mw.config.get('wgNamespaceNumber'), |
||
specialPageName = mw.config.get('wgCanonicalSpecialPageName'), |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
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 === 2 || // User |
ns === 2 || // User |
||
ns % 2 === 1 || // Talk page |
ns % 2 === 1 || // Talk page |
||
⚫ | |||
mw.config.get("wgPageContentModel") !== "wikitext" || |
mw.config.get("wgPageContentModel") !== "wikitext" || |
||
mw.config.get('wgAction') != 'view' ) { |
mw.config.get('wgAction') != 'view' ) { |
||
return; |
|||
} |
} |
||
if ( categories.length === 0) { |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
const pageName = mw.config.get('wgPageName'), |
|||
⚫ | |||
canonicalCats = categories.map(ele => 'Category:' + ele).join('|'); |
|||
⚫ | |||
⚫ | |||
$.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 |
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; |
|||
⚫ | |||
⚫ | |||
const catVt = ele.varianttitles; |
|||
} |
if (!catVt) { return; } |
||
⚫ | |||
api.get({action:'query', prop:'info', inprop:'varianttitles', formatversion:2, titles:canonicalCats.join("|")}) |
|||
. |
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); |
|||
⚫ | |||
⚫ | |||
⚫ | |||
if(cats.includes( catHans.replace(/ /g,'_') ) || cats.includes( catHans )) { |
|||
catlink.attr('title','Category:' + catHant); |
|||
catlink.attr('href','/zh/Category:' + catHant); |
|||
} |
|||
⚫ | |||
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'); |
|||
}); |
}); |
||
⚫ | |||
}); |
}); |
||
}); |
}); |
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'); }); });