MediaWiki:Gadget-directLinkToCommons.js

JS-код ниже относится к гаджету: Прямой переход к страницам файлов с Викисклада (править описание). Он включён по умолчанию.

После сохранения или недавних изменений очистите кэш браузера.

/** * [[ВП:Гаджеты/Прямой переход на Викисклад]] * @source: https://www.mediawiki.org/wiki/Snippets/Direct_imagelinks_to_Commons */mw.hook( 'wikipage.content' ).add( function ( $content ) {var fileSelector = 'a.image, a.mw-file-description';// Ignore most files in the mobile version until [[phab:T65504]] gets resolvedif ( mw.config.get( 'skin' ) === 'minerva' ) {fileSelector = '.noviewer a.image, .noviewer a.mw-file-description';}if ( mw.config.get( 'wgNamespaceNumber', 0 ) < 0 ) {return;}mw.loader.using( 'mediawiki.util' ).done( function () {varcommonsBase =  '//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( '^' + mw.util.escapeRegExp( '//upload.wikimedia.org/wikipedia/commons/' ) );$content.find( fileSelector ).attr( 'href', function( i, currVal ) {// Link has no current value, so exit early to avoid error// TypeError: Cannot read properties of undefined (reading 'replace')if ( !currVal ) {return;}var src = $( this ).find( 'img' ).attr( 'src' );if ( !src ) {return;}if ( uploadBaseRe.test( src ) ) {var url = currVal.replace( localBase, commonsBase ).replace( localBaseScript, commonsBaseScript );// Override default language on Commons for non-logged in users only (per [[Special:Diff/95375054]])if( !mw.config.get( 'wgUserId' ) ) {url += ( /\?/.test(url) ? '&' : '?' ) + 'uselang=ru';}return url;}} );} );} );