MediaWiki:Gadget-selfHighlight.js

Матеріал з Terraria Wiki
Перейти до навігації Перейти до пошуку

Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
  • Opera: натисніть Ctrl-F5
$(document).ready( function() {

	mw.loader.using( [ 'mediawiki.api' ] ).done( function () {
		var api = new mw.Api();
		// get local namespace
		api.parse( "{{ns:User}}" ).done( function (result) {
			var userNamespace = result.match( /<p>(.*)[\n]<\/p>/ )[1];
			var linkTarget = (
				mw.config.get( 'wgArticlePath' ).replace('$1','') + 
				'(' + userNamespace.replaceAll(' ','_') + '|User):'
				);
			// user name from link
			var linkTemplate = new RegExp( linkTarget + '[ _]*([^?/]+)', 'i' );
			// if link isn't subpage
			var linkNegativeTarget = new RegExp( linkTarget + '[^?]*\/[^?]*', 'i' );
			// if link is user link
			var linkTarget = new RegExp( linkTarget, 'i' );
			// get user name
			var user = mw.config.get('wgUserName');
			$('#mw-content-text a[href]').each( function() {
				var href = decodeURI( $(this).attr('href') ).replaceAll(' ','_');
				// if link has "/wiki/User:" (for en wiki as example)
				if ( href.match( linkTarget ) && !href.match( linkNegativeTarget ) ) {
					var userName = href.match( linkTemplate )[2];
					if ( (userName[0].toUpperCase() + userName.slice(1)) == user ) {
						$(this).addClass( 'self-highlight' );
					}
				}
			});
		});
	});
});