Участник:Александр Дмитриев/direct link to commons without uselang equals ru.js

Материал из Википедии — свободной энциклопедии
/*
  Гаджет «Прямой переход на Викисклад».
  Вариант гаджета, не добавляющий в конец ссылки символы «uselang=ru».
  Основано на https://ru.wikipedia.org/wiki/MediaWiki:Gadget-directLinkToCommons.js
  Документация: https://ru.wikipedia.org/wiki/Википедия:Гаджеты/Прямой_переход_на_Викисклад
*/

if( mw.config.get( 'wgNamespaceNumber', 0 ) >= 0 ){
	$( function() {
		var	commonsBase =  '//commons.wikimedia.org/wiki/File:',
			localBase = mw.util.getUrl( mw.config.get( 'wgFormattedNamespaces' )['6'] + ':' ),
			commonsBaseScript =  '//commons.wikimedia.org/w/index.php?title=File:',
			localBaseScript = mw.util.wikiScript() + '?title=' + mw.util.wikiUrlencode( mw.config.get( 'wgFormattedNamespaces' )['6'] + ':' ),
			uploadBaseRe = new RegExp( '^' + $.escapeRE( '//upload.wikimedia.org/wikipedia/commons/' ) );
 
		$( 'a.image' ).attr( 'href', function( i, currVal ) {
			if ( uploadBaseRe.test( $(this).find( 'img' ).attr( 'src' ) ) ) {
				return currVal.replace( localBase, commonsBase ).replace( localBaseScript, commonsBaseScript );
			}
		});
	});
}