MediaWiki/Template

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

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[modifica]

Parametri[modifica]

Sostituzione[modifica]

Escludere una parte del template[modifica]

Alternative[modifica]

  • Extension:LabeledSectionTransclusion
  • ...

Programmarli con Lua[modifica]

Ad 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:

Cheat sheet[modifica]

Cosa 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...[modifica]

Template auto-substante[modifica]

Salvando 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.

Note[modifica]

  1. http://www.mediawiki.org/wiki/Lua_scripting
  2. [1]
  3. [2]