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.

/* <nowiki> */
const EDIT_RE = /^(?:<noinclude>{{protetta}}<\/noinclude>\n?)?<div style="float: *right; (?:margin-(?:top|left|right):[\d\.]+em; )+text-align:center;?">\n?\[\[(?:File|Immagine):([^\[\]\|]+)\|100px(?:\|[^|\[\]]+)?]]<br *\/?><small>''(?!')([^<>]+)''(?:<br *\/?>)?<\/small><\/div> *\n'''Nati [\w ']+\[\[[^\[\]]+]]\.\.\.'''<br *\/?>\n((?:\[\[[^\[\]]+]](?: e \[\[[^\[\]]+]])? \(\[\[\d+(?: a\.C\.)?]]\) *(?:<br *\/?>)? *\n)+) *\n'''\.\.\. e morti ?'''<br *\/>\n((?:\[\[[^\[\]]+]] \(\[\[\d+(?: a\.C\.)?]]\) *(?:<br *\/?>)? *\n)+) *\n'''In questo giorno accadde ?\.\.\. *''' *<br *\/> *\n((?:\[\[[^\[\]]+]][  ][–\-].+(?:<br\/>)? *\n)+) *\n+'''(?:Oggi ricorre|Ricorre oggi)(?:''':|:''') (.+\.)(?:<br *\/?>)?\n?\s*<noinclude>\s*\[\[Categoria:Template attualità[^|\]]+\| \d\d]]\s*<\/noinclude>\s*$/;
const REPLACEMENT_STR = '{{PaginaPrincipale/Attualita/Modello\n|data = {{subst:SUBPAGENAME}}\n|immagine = $1\n|didascalia = $2\n|nati =\n$3|morti =\n$4|accadimenti =\n$5|ricorrenze = $6\n}}';

const LIST_REPLACE_RE = /(\|(?:nati|morti|accadimenti) =\n)((?:\[\[.+<br *\/?> *\n)+\[\[.+[).] *)(?:<br *\/>)?(?=\n)/g;
function linkReplacer( m, g1, g2, o, s ) {
	const bulletList = g2.split( "\n" )
		.map( ( x ) => '*' + x.replace( /<br *\/?>$/, '' ).trim() )
		.join( "\n" );
	return g1 + bulletList;
}

const SKIP_TITLES = [
	'Template:PaginaPrincipale/Attualita',
	'Template:PaginaPrincipale/Attualita/Avvenimenti in corso',
	'Template:PaginaPrincipale/Attualita/Avvenimenti in corso/Taccuino',
	'Template:PaginaPrincipale/Attualita/Situazione',
	'Template:PaginaPrincipale/Attualita/Avvenimenti in corso/Archivio 2004',
	'Template:PaginaPrincipale/Attualita/Avvenimenti in corso/Archivio 2005',
	'Template:PaginaPrincipale/Attualita bozza',
	'Template:PaginaPrincipale/Attualita/Avvenimenti futuri',
	'Template:PaginaPrincipale/Attualita/Modello'
];

var api = new mw.Api();

api.get( {
	action: 'query',
	format: 'json',
	generator: 'allpages',
	gapprefix: 'PaginaPrincipale/Attualita',
	gapnamespace: 10,
	gaplimit: 'max',
	prop: 'revisions',
	rvprop: 'content'
} ).done( async function ( res ) {
	for ( let pageID in res.query.pages ) {
		let pageData = res.query.pages[pageID],
			title = pageData.title,
			content = pageData.revisions[0]['*'];

		if ( SKIP_TITLES.indexOf( title ) > -1 ) {
			continue;
		}
		
		updatePage( title, content );
		await new Promise(r => setTimeout(r, 1000));
	}
} );

function updatePage( title, content ) {
	if ( !EDIT_RE.test( content ) ) {
		// Già fatta.
		return;
	}
	content = content.replace( EDIT_RE, REPLACEMENT_STR );
	if ( content.match( LIST_REPLACE_RE ).length !== 3 ) {
		console.error( content );
		throw new Error( 'No list match: ' + title );
	}
	content = content.replace( LIST_REPLACE_RE, linkReplacer );
	api.postWithEditToken( {
		action: 'edit',
		title: title,
		text: content,
		summary: 'Standardizzo pagina con [[Template:PaginaPrincipale/Attualita/Modello]]',
		bot: true
	} )
		.done( function () {
			console.log( 'Done: ' + title );
		} )
		.fail( function ( code, data ) {
			console.error( 'Errore edit:', code, data );
		} );
}

/* </nowiki> */