MediaWiki:Gadget-SisterProjects.js

Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
  • Opera: Presiona Ctrl+F5.
if (
	mw.config.get( 'wgCanonicalNamespace' ) === 'Special' ||
	mw.config.get( 'wgCanonicalNamespace' ) === 'MediaWiki'
) {
	$( function () {
		var projects, isVector, isMonobook, path, $ul, $div;
		
		projects = [
			[ 'meta.wikimedia',    'Meta-Wiki' ],
			[ 'commons.wikimedia', 'Commons' ],
			[ 'www.wikidata',      'Wikidata' ],
			[ 'es.wikipedia',      'Wikipedia' ],
			[ 'es.wikibooks',      'Wikilibros' ],
			[ 'es.wikiquote',      'Wikiquote' ],
			[ 'es.wikinews',       'Wikinoticias' ],
			[ 'es.wikisource',     'Wikisource' ],
			[ 'es.wikiversity',    'Wikiversidad' ],
			[ 'es.wikivoyage',     'Wikiviajes' ],
			[ 'species.wikipedia', 'Wikispecies' ],
			[ 'en.wiktionary',     'Wikcionario inglés' ],
			[ 'fr.wiktionary',     'Wikcionario francés' ]
		];
		
		isVector = [ 'vector', 'vector-2022' ].indexOf( mw.config.get( 'skin' ) ) !== -1;
		isMonobook = mw.config.get( 'skin' ) === 'monobook';

		path = mw.util.getUrl( mw.config.get( 'wgNamespaceNumber' ) < 0
			? mw.format(
				'$1:$2',
				mw.config.get( 'wgCanonicalNamespace' ),
				mw.config.get( 'wgCanonicalSpecialPageName' )
			)
			: mw.config.get( 'wgPageName' )
		);

		$ul = $( '<ul>' )
			.addClass( isVector ? 'vector-menu-content-list': '' );

		$div = $( isVector ? '<nav>' : '<div>' )
			.attr( {
				'id': 'p-intpr',
				'role': 'navigation',
				'aria-labelledby': 'p-intpr-label'
			} )
			.addClass( isVector ? [ 'vector-menu', 'vector-menu-portal', 'portal' ] : isMonobook ? 'portlet' : 'mw-portlet' )
			.append(
				$( '<h3>' )
					.attr( 'id', 'p-intpr-label' )
					.text( 'Proyectos hermanos' ),
				$( '<div>' )
					// por ahora '.body' hace falta, aunque esté deprecated
					.addClass( isVector ? [ 'body', 'vector-menu-content' ] : isMonobook? 'pBody' : 'mw-portlet-body' )
					.append( $ul )
			);

		$.each( projects, function () {
			$( '<a>' )
				.attr( 'href', mw.format( '//$1.org$2', this[ 0 ], path ) )
				.text( this[ 1 ] )
				.appendTo( $( '<li>' ).appendTo( $ul ) );
		} );

		$( '#p-tb' ).after( $div );
	} );
}