Lompat ke isi

MediaWiki:Gadget-imagelinks.js

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Revisi sejak 9 Agustus 2017 17.48 oleh Krenair (bicara | kontrib) (updates)

Catatan: Setelah menyimpan, Anda harus memintas tembolok (cache) peramban Anda untuk melihat perubahannya. Google Chrome, Firefox, Microsoft Edge dan Safari: Tahan tombol Shift dan klik Muat ulang (Reload) di tombol bilah alat. Untuk detail dan instruksi tentang peramban lain, lihat halaman menghapus singgahan (Inggris).

/*  _____________________________________________________________________________
 * |                                                                             |
 * |                    === WARNING: GLOBAL GADGET FILE ===                      |
 * |                  Changes to this page affect many users.                    |
 * | Please discuss changes on the talk page or on [[WT:Gadget]] before editing. |
 * |_____________________________________________________________________________|
 *
 * Direct imagelinks to Commons
 *
 * Required modules: mediawiki.RegExp, mediawiki.util
 *
 * @source https://www.mediawiki.org/wiki/Snippets/Direct_imagelinks_to_Commons
 * @author Krinkle
 * @version 2015-08-01
 */
if ( mw.config.get( 'wgNamespaceNumber', 0 ) >= 0 ) {
	mw.hook( 'wikipage.content' ).add( function ( $content ) {
		var
			uploadBaseRe = /^\/\/upload\.wikimedia\.org\/wikipedia\/commons/,

			localFileNSString = mw.config.get( 'wgFormattedNamespaces' )['6'] + ':',
			localBasePath = new RegExp(
				'^' + mw.RegExp.escape( mw.util.getUrl( localFileNSString ) )
			),
			localBaseScript = new RegExp(
				'^' + mw.RegExp.escape(
					mw.util.wikiScript() + '?title=' + mw.util.wikiUrlencode( localFileNSString )
				)
			),

			commonsBasePath = '//commons.wikimedia.org/wiki/File:',
			commonsBaseScript = '//commons.wikimedia.org/w/index.php?title=File:';

		$content.find( 'a.image' ).attr( 'href', function ( i, currVal ) {
			if ( uploadBaseRe.test( $( this ).find( 'img' ).attr( 'src' ) ) ) {
				return currVal
					.replace( localBasePath, commonsBasePath )
					.replace( localBaseScript, commonsBaseScript );
			}
		} );
	} );
}