MediaWiki:Gadget-CollegamentoWikidata.js

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.


Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.

/**
 * Sotto il titolo di ogni voce, categoria o template, crea un link
 * all'elemento Wikidata se collegato, altrimenti alla pagina per permetterne la creazione.
 *
 * Bug noti:
 * * [[phab:T185437]]
 * 
 * Author: --[[Utente:Valerio Bozzolan]] 19:06, 31 lug 2018 (CEST)
 */
( function ( $, config ) {
	// human labels
	var L10n = {
		existing:   'Elemento Wikidata',
		unexisting: 'Crea elemento Wikidata',
	};

	// allowed namespaces
	var nsWhitelist = [
		 0, // <main>
		10, // Template
		14, // Category
	];

	var ns    = config.get( 'wgNamespaceNumber' );
	var item  = config.get( 'wgWikibaseItemId'  );
	var title = config.get( 'wgPageName'        ).replace( /_/g, ' ' );

	if( nsWhitelist.indexOf( ns ) === -1 ) {
		return;
	}

	var text = item
		? L10n.existing
		: L10n.unexisting;

	var url  = item
		? '//www.wikidata.org/wiki/Special:EntityPage/' + item
		: '//www.wikidata.org/wiki/Special:NewItem?label=' + encodeURIComponent( title );

	var $url = $( '<a>' )
		.text( text )
		.prop( 'href', url );

	var $container = $( '<div>' ).append( $url );

	if( item ) {
		$container
			.append( ' ' )
			.append( $( '<code>' ).text( item ) );
	}

	// TODO: Valutare eventualmente un posizionamento alternativo, non è chiaro se
	// il link a WD si possa considerare un sottotitolo.
	mw.util.addSubtitle( $container.get( 0 ) );
} )( $, mw.config );