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

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

来自LLWiki
跳转到导航 跳转到搜索
(prefer zh-cn instead of zh-hans etc.)
 
(未显示2个用户的14个中间版本)
第5行: 第5行:
*/
*/
$(function() {
$(function() {
const ns = mw.config.get('wgNamespaceNumber'),
const ns = mw.config.get('wgNamespaceNumber'),
mobileMode = mw.loader.getState( 'ext.gadget.MobileCategories' ) !== null;
specialPageName = mw.config.get('wgCanonicalSpecialPageName'),
categories = mw.config.get('wgCategories') || [];
if ( mw.config.get('wgCanonicalSpecialPageName') !== 'Upload' &&
(ns < 0 || // Special pages
if ( specialPageName !== 'Upload' &&
(ns < 0 || // Special pages
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
!mw.config.get('wgArticleId') || // Non-existing file pages
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' ||
mw.config.get( 'wgIsRedirect' )) ) {
return;
mw.config.get( 'wgIsRedirect' )) ) {
}
return;
if ( mobileMode ) {
}
if ( categories.length === 0) {
mw.hook( 'wikipage.categories' ).add( main );
} else {
mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
main();
return;
}
}

const pageName = mw.config.get('wgPageName'),
function main() {
api = new mw.Api(),
const api = new mw.Api(),
canonicalCats = categories.map(ele => 'Category:' + ele).join('|');
categories = mw.config.get('wgCategories'),
var request1 = api.get({action:'parse', page:pageName, prop:'wikitext', formatversion:2}),
noVariants = categories.length === 0 || mobileMode,
request2 = api.get({action:'query', prop:'info', inprop:'varianttitles', formatversion:2, titles:canonicalCats, converttitles:1});
canonicalCats = categories.map(ele => 'Category:' + ele).join('|');
$.when(request1, request2).then(function(data1, data2) {
var request1 = api.get({
const obj1 = data1[0].parse.wikitext,
action: 'query',
obj2 = data2[0].query.pages,
titles: mw.config.get('wgPageName'),
cats = [...obj1.matchAll(/\[\[\s*(?:category|分类|分類)\s*:\s*(.*?)(?:\|.*)?\s*]]/ig)]
prop: 'revisions|pageprops',
.map( ele => ele[1].charAt(0).toUpperCase() + ele[1].slice(1).replace(/_/g, ' ') );
rvprop: 'content',
window.hotcat_preload = obj1;
rvslots: 'main',
obj2.forEach(function(ele) {
ppprop: 'defaultsort',
const catVt = ele.varianttitles;
formatversion: 2,
if (!catVt) { return; }
}), request2 = noVariants && $.Deferred().resolve() || api.get({
const catHans = catVt["zh-hans"].substring(3),
action:'query',
catHant = catVt["zh-hant"].substring(3),
prop: 'info',
catlink = $('#catlinks a[title="Category:' + catHans + '"], #catlinks a[title="Category:' + catHant + '"]');
inprop: 'varianttitles',
if (catlink.length === 0) { return; }
formatversion: 2,
if (cats.includes( catHans )) {
titles: canonicalCats,
catlink.attr('title','Category:' + catHans);
converttitles: 1
catlink.attr('href','/zh/Category:' + catHans);
});
}
$.when(request1, request2).then(function(data1, data2) {
else {
const pageInfo = data1[0].query.pages[0],
catlink.attr('title','Category:' + catHant);
obj1 = pageInfo.revisions[0].slots.main.content;
catlink.attr('href','/zh/Category:' + catHant);
window.hotcat_preload = obj1;
}
mw.config.set( 'wgDefaultSortKey', (pageInfo.pageprops || {}).defaultsort || '' );
});
mw.hook( 'gadget.hotcat.preloaded' ).fire();
mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
if ( noVariants ) {
});
mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
return;
}
const 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, ' ') );
obj2.forEach(function(ele) {
const catVt = ele.varianttitles;
if (!catVt) { return; }
const catHans = catVt['zh-cn'].substring(3),
catHant = catVt['zh-tw'].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');
});
}
});
});
//</nowiki>
//</nowiki>

2023年4月4日 (二) 20:36的最新版本

//<nowiki>
/**
 * @Function: 修改HotCat以识别繁简分类
 * @Contributors: [[User:Bhsd]]; [[User:葫芦又]]
 */
$(function() {
	const ns = mw.config.get('wgNamespaceNumber'),
		mobileMode = mw.loader.getState( 'ext.gadget.MobileCategories' ) !== null;
	if ( mw.config.get('wgCanonicalSpecialPageName') !== 'Upload' &&
		(ns < 0 || // Special pages
		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' ||
		mw.config.get( 'wgIsRedirect' )) ) {
		return;
	}
	if ( mobileMode ) {
		mw.hook( 'wikipage.categories' ).add( main );
	} else {
		main();
	}

	function main() {
		const api = new mw.Api(),
			categories = mw.config.get('wgCategories'),
			noVariants = categories.length === 0 || mobileMode,
			canonicalCats = categories.map(ele => 'Category:' + ele).join('|');
		var request1 = api.get({
			action: 'query',
			titles: mw.config.get('wgPageName'),
			prop: 'revisions|pageprops',
			rvprop: 'content',
			rvslots: 'main',
			ppprop: 'defaultsort',
			formatversion: 2,
		}), request2 = noVariants && $.Deferred().resolve() || api.get({
			action:'query',
			prop: 'info',
			inprop: 'varianttitles',
			formatversion: 2,
			titles: canonicalCats,
			converttitles: 1
		});
		$.when(request1, request2).then(function(data1, data2) {
			const pageInfo = data1[0].query.pages[0],
				obj1 = pageInfo.revisions[0].slots.main.content;
			window.hotcat_preload = obj1;
			mw.config.set( 'wgDefaultSortKey', (pageInfo.pageprops || {}).defaultsort || '' );
			mw.hook( 'gadget.hotcat.preloaded' ).fire();
			if ( noVariants ) {
				mw.loader.load('/zh?title=mediawiki:gadget-HotCat.js&action=raw&ctype=text/javascript');
				return;
			}
			const 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, ' ') );
			obj2.forEach(function(ele) {
				const catVt = ele.varianttitles;
				if (!catVt) { return; }
				const catHans = catVt['zh-cn'].substring(3),
					catHant = catVt['zh-tw'].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');
		});
	}
});
//</nowiki>