MediaWiki/Template
Un template è una pagina del namespace Template
. Il contenuto di un template viene incluso con una speciale sintassi:
{{NomeDellaPagina}}
Quando l'utente consulta una pagina che contiene questa scritta, MediaWiki cerca la pagina chiamata Template:NomeDellaPagina
, e visualizza automaticamente il contenuto della pagina al posto della scritta.
Tecnicamente, tutte le pagine del wiki possono essere incluse, la presenza di un namespace apposito serve unicamente per tenere ordinati i contenuti del wiki, distinguendo le "pagine dei contenuti" (namespace principale) dalle "pagine fatte per essere incluse" (namespace Template
).
I template possono essere usati per
- includere in molte pagine un contenuto identico, come una nota o un disclaimer;
- dare una formattazione standard ai contenuti delle pagine;
- ...
Il meccanismo dei template assicura che le modifiche saranno fatte solo sulla pagina del template, e MediaWiki la sostituirà automaticamente sulle pagine che richiamano il template.
Caratteristiche dei template
modificaParametri
modificaSostituzione
modificaEscludere una parte del template
modificaAlternative
modifica- Extension:LabeledSectionTransclusion
- ...
Programmarli con Lua
modificaAd aprile 2012, gli sviluppatori di MediaWiki stanno sviluppando meccanismi per supportare un linguaggio di programmazione general-purpose per programmare i template. Tra i tanti linguaggi a disposizione, è stato scelto il Lua.[1] Finché non ci sarà un supporto ufficiale, integrato direttamente in MediaWiki, gli utenti possono esercitarsi con
- Il demo sul sito ufficiale di Lua
- una estensione per MediaWiki sviluppata in precedenza da una terza parte
- l'estensione (incompleta e utilizzabile solo a fini di test) in cui gli sviluppatori stanno implementando il supporto per Lua che sarà integrato in MediaWiki
- Una wiki allestita su Wikia apposta per questo scopo, che già adesso fornisce supporto per questo linguaggio, ed è liberamente editabile
Per la sintassi si rimanda a:
- il wikibook "Lua"[2]
- la pagina dedicata al Lua nel wikibook sulle espressioni regolari[3]
Cheat sheet
modificaCosa | Sintassi | Significato | |
---|---|---|---|
Funzione |
function f() ... end |
f = function() ... end |
|
Selezione |
if (condizione) then ... end |
||
Inizializzazione di default |
a = a or b |
if not a then a = b end | |
Gestione degli errori |
pcall(funzione, arg1, arg2, ...) |
Esegue funzione(arg1, arg2, ...) e restituisce true o false a seconda che la funzione sia completata con successo oppure sia andata in errore.
| |
Tabelle, array e oggetti | |||
Crea un array associativo (collezione di coppie chiave-valore) |
a = { chiave1=elemento1, elemento2, [2]=elemento3 } |
Equivalente a:
a = {} --inizialmente vuoto a["chiave1"] = elemento1 a[1] = elemento2 a[2]=elemento3 | |
Crea un oggetto |
obj = { campo1=valore1 } | ||
Espressioni regolari | |||
Librerie |
Come fare per...
modificaTemplate auto-substante
modificaSalvando un template intenzionalmente vuoto, chiamato Template:Void
, e salvando in un secondo template questo codice (scrivendo il nome del template al posto di nometmpl
):
{{{subst:void}}{subst:nometmpl}}
il codice {{subst:nometmpl}}
si replicherà ad ogni salvataggio. In assenza del subst:void
, il trucco non sarebbe possibile, perché MediaWiki rileverebbe un loop del template (il template transclude se stesso) e quindi darebbe errore.