Utente:Valepert/Strumentivari.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.

/**
 * Gadget-strumentivari.js
 * Aggiunge un tab per effettuare sostituzioni standard o personalizzate.
 * Riscritto da zero (a parte le regex) a partire da:
 * http://it.wikipedia.org/w/index.php?title=MediaWiki:Gadget-strumentivari.js&oldid=47552288
 *
 * @author [[Utente:Rotpunkt]]
 */
/*global mediaWiki, jQuery */

( function ( mw, $ ) {
	'use strict';

	// Gestore del click su "Formatta"
	function formatHandler() {
		$( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
			.replace( /\’/g, "'" )
			.replace( / '([\w\ ]+)' /g, ' "$1" ' )
			.replace( /“/g, '"' )
			.replace( /”/g, '"' )
			.replace( /–/g, '-' )
			.replace( /,,/g, ',' )
			.replace( / m2 /g, ' m² ' )
			.replace( /a'[ ]/g, "à " )
			.replace( /([^p])o'[ ]/g, "$1ò " )
			.replace( /u'[ ]/g, "ù " )
			.replace( /i'[ ]/g, "ì " )
			.replace( /[ ]anzich(è|e')/g, " anziché" )
			.replace( /[ ]affinch(è|e')/g, " affinché" )
			.replace( /[ ]bench(è|e')/g, " benché" )
			.replace( / cioé/g, " cioè" )
			.replace( / Dè /g, " De' " )
			.replace( / dè /g, " de' " )
			.replace( / dò/g, " do" )
			.replace( /E'[ ]/g, "È " )
			.replace( /É /g, "È " )
			.replace( /[ ]e'[ ]/g, " è " )
			.replace( / é/g, " è" )
			.replace( / fà /g, " fa " )
			.replace( / fè /g, " fe' " )
			.replace( / Frà /g, " Fra' " )
			.replace( / fù /g, " fu " )
			.replace( / mò /g, " mo' " )
			.replace( / nè /g, " né " )
			.replace( /[ ]ne'[ ]/g, " né " )
			.replace( /[ ]nonch(è|e')/g, " nonché" )
			.replace( / pè /g, " pe' " )
			.replace( /[ ]perch(è|e')/g, " perché" )
			.replace( /[ ]per(ó|o')/g, " però" )
			.replace( /[ ]piu'/g, " più" )
			.replace( / pò/g, " po'" )
			.replace( /[ ]poich(è|e')/g, " poiché" )
			.replace( / propio/g, " proprio" )
			.replace( /[ ](puo|puo')/gi, " può" )
			.replace( / quì /gi, " qui " )
			.replace( / quà /gi, " qua " )
			.replace( /[ ]qual'è/gi, " qual è" )
			.replace( / sà /gi, " sa " )
			.replace( / sè /gi, " sé " )
			.replace( /si'[ ]/g, "sì" )
			.replace( / sò /g, " so " )
			.replace( / sù /g, " su " )
			.replace( /[ ]tr(è|e'|é)/g, " tre" )
			.replace( / sucessivo /gi, " successivo " )
			.replace( /&lt;/g, "<" )
			.replace( /&gt;/g, ">" )
			.replace( /&amp;/g, "&" )
			.replace( /&quot;/g, '"' )
			.replace( /&agrave;/g, "à" )
			.replace( /&egrave;/g, "è" )
			.replace( /&eacute;/g, "é" )
			.replace( /&igrave;/g, "ì" )
			.replace( /&iexcl;/g, "¡" )
			.replace( /&cent;/g, "¢" )
			.replace( /&pound;/g, "£" )
			.replace( /&yen;/g, "¥" )
			.replace( /&acute;/g, "'" )
			.replace( /&plusmn;/g, "±" )
			.replace( /&times;/g, "×" )
			.replace( /&divide;/g, "÷" )
			.replace( /&micro;/g, "µ" )
			.replace( /&deg;/g, "°" )
			.replace( /&frac14;/g, "¼" )
			.replace( /&frac12;/g, "½" )
			.replace( /&frac34;/g, "¾" )
			.replace( /&sup1;/g, "¹" )
			.replace( /&sup2;/g, "²" )
			.replace( /&sup3;/g, "³" )
			.replace( /&sect;/g, "§" )
			.replace( /<\/?(b|strong)>/gi, "'''" )
			.replace( /<\/?(i|em|var)>/gi, "''" )
			.replace( /<br>\n\n/g, "\n\n" )
			.replace( /<br>/gi, "<br />" )
			.replace( /\n<hr[ \/]*>\n/gi, "\n----\n" )
			.replace( / +<hr[ \/]*> +/gi, "\n----\n" )
			.replace( /<hr ([^>\/]+?)>/gi, "<hr $1 />" )
			.replace( /\n *<h1> *([^<]+?) *<\/h1> *\n/gi, "\n= $1 =\n" )
			.replace( /\n *<h2> *([^<]+?) *<\/h2> *\n/gi, "\n== $1 ==\n" )
			.replace( /\n *<h3> *([^<]+?) *<\/h3> *\n/gi, "\n=== $1 ===\n" )
			.replace( /\n *<h4> *([^<]+?) *<\/h4> *\n/gi, "\n==== $1 ====\n" )
			.replace( /\n *<h5> *([^<]+?) *<\/h5> *\n/gi, "\n===== $1 =====\n" )
			.replace( /\n *<h6> *([^<]+?) *<\/h6> *\n/gi, "\n====== $1 =======\n" ) );

		$( '#wpSummary' ).val( $( '#wpSummary' ).val() + '+formattazione ' );
		$( '#wpMinoredit' ).prop( 'checked', true );
	}

	// Gestore del click su "sostituisci"
	function replaceHandler() {
		var $find, $replace, $div = $( '<div>' );
		$( '<label>' ).text( 'Cerca:' ).appendTo( $div );
		$find = $( '<input/>' ).attr( 'type', 'text' ).attr( 'size', 50 ).appendTo( $div );
		$( '<label>' ).text( 'Sostituisci con:' ).appendTo( $div );
		$replace = $( '<input/>' ).attr( 'type', 'text' ).attr( 'size', 50 ).appendTo( $div );
		$div.find( 'label, input' ).css( 'display', 'block' );
		$( '#gsv-dialog' ).html( $div ).dialog( {
			title: 'Strumenti vari - sostituisci',
			width: 400,
			modal: true,
			buttons: {
				'Sostituisci': function () {
					if ( $find.val() !== '' ) {
						$( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
							.replace( new RegExp( $find.val(), 'g' ), $replace.val() ) );
					}
					$( this ).dialog( 'close' );
				},
				'Annulla': function () {
					$( this ).dialog( 'close' );
				}
			}
		} );
	}

	$( function () {
		var portletLink, $format, $replace, $span;
		if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
			// setup tab
			$format = $( '<a>' ).attr( 'href', '#' ).text( 'Formatta' );
			$format.click( function ( event ) {
				event.preventDefault();
				formatHandler();
			} );
			$replace = $( '<a>' ).attr( 'href', '#' ).text( 'sostituisci' );
			$replace.click( function ( event ) {
				event.preventDefault();
				mw.loader.using( ['jquery.ui'], function () {
					replaceHandler();
				} );
			} );
			$span = $( '<span>' ).css( 'white-space', 'nowrap' ).append( $format, '<small>e</small>', $replace );
			portletLink = mw.util.addPortletLink( 'p-cactions', '#', '' );
			$( portletLink ).find( 'a' ).replaceWith( $span );
			// setup dialog
			$( '<div>' ).attr( 'id', 'gsv-dialog' ).appendTo( 'body' );
		}
	} );
}( mediaWiki, jQuery ) );