'U TemplateData jè 'nu còdece ca ve 'mblemendàte jndr'à le manuale de le template pe dà 'a possibbilità de cangià le pàggene cu 'u nuève VisualEditor ca capisce quale sò le parametre de chidde template e de addumannà a l'utinde 'n'inderfacce grafeche stodeca stodeche e funzionanade ca 'nzerisce le template jndr'à vôsce. Non ge ste abbesògne de 'nvedarse o de 'mbarà ninde de parteculare: stè 'na sistemazione diverse de le date ca nuje avime e ca stonne pure sus a le manuale. Cchiù abbasce iacchie tanda struminde ca facene 'nu sacche de fatìe a 'u poste de l'utende!
L'emmàggene ca stà ddò a déstre te fasce vedé dù temblate méndre vénnene cangiàte cu VisualEditor.
Ce la fà cchiù granne puéte vedé angòre megghie ccòme quiste struménde éte cchiù fàcele da ausà. La defférenze 'nge sta iendre a stu coddèce ca se chiàme "TemplateData", ca ié pratecamende nu riassùnde de tutte le temblate - ccòme le nome de le parammetre o na descrezzìone - e u VisualEditor le pigghie tutte quande.
Iune de le cose pe le quale sérve l'aiiute de le volondarie ié l'aggiunde de TemplateData a le temblate, e sérvene pe chidde in evidenze accume u infobox, pecché quiste strumende le rende cchià facele da modefeché la prima volde, ma ié pure cchiù facele a méttele la prima volde, pecché v'anne a ffà vedé le parammetre desponibele, e quidde potene iésse mise cu nu click! Cchiù abbasce nge stà la spiegaziòne fatte buéne buéne suse accume costruisce nu TemplateData.
A tutti noi vengono subito in mente template vitali per il progetto, e potete controllare - non sono ancora ottimizzati con TemplateData. C'è anche una lista dei template più usati, che i volenterosi possono iniziare a spuntare man mano che ne adeguano uno perché dia il meglio di sé con e grazie a VisualEditor.
TemplateData è controllato dall'omonima estensione Mediawiki già attiva su it.wiki, che permette agli utenti di aggiungere delle piccole parti di dati strutturati alla pagina di un template, o di essere inclusi in quella stessa pagina (come avviene per il manuale di istruzioni di ognuno di essi). Quando il template è completo di questi dati, funzionerà egregiamente con VisualEditor.
Si noti che VisualEditor supporta i template anche senza TemplateData; per compilarli però è necessario sapere cosa ci andrebbe dentro, e quindi conoscere i parametri a memoria, non dimenticarsi di quelli obbligatori, o quanto meno avere il manuale davanti che li spieghi, in pratica lo stesso livello di difficoltà che un utente alle prime armi avrebbe adesso.
U TemplateData éte basate suse o standard "JSON", ed éte na cose semblece. Ce ccose sté da fé jé métte nu pare de tag <templatedata> iendre a nu punde de u manuale de u temblate ca amme pigghiate, cu stu codece ca sté dò ssotte:
<templatedata>
Dò nge vonne l'nvormazione de TemplateData
</templatedata>
Questo dice al software che tutto quello che si trova tra i due tag è TemplateData, e che deve farvi riferimento quando il template è usato. TemplateData segue un layout standard; solo a titolo di esempio, prendiamo il template:Commons, che si usava una volta per linkare alla pagina (o alla categoria) di Commons relativa a una voce. Ha un unico parametro, che è, comprensibilmente, il titolo della pagina di Commons che ci interessa linkare. In questo caso il TemplateData relativo sarebbe:
<templatedata>{"description":"Un template per linkare la pagina di Commons relativa a una voce","params":{"1":{"label":"Titolo della pagina","description":"La pagina di Commons che si vuole linkare","type":"string","required":true}}}</templatedata>
Nel template tutto ciò verrebbe visualizzato a mo' di tabella, come:
Un template per linkare la pagina di Commons relativa a una voce
Il TemplateData va inserito in una sottopagina del template, chiamata Template:NOMETEMPLATE/TemplateData, ad esempio Template:Azienda/TemplateData.
La sottopagina va poi richiamata nella pagina base del template, inserendo {{TemplateData}} nella parte compresa tra <noinclude>, dopo il {{man}}.
In via temporanea, ad esempio se la pagina base del template è protetta, la sottopagina può essere inclusa nel manuale del template stesso (ad esempio in Template:Commons/man), che generalmente non è protetto.
Attenzione: potrebbe volerci del tempo, anche molte ore, prima che il template risulti effettivamente aggiornato e quindi correttamente visibile e utilizzabile con VisualEditor. Per bypassare l'attesa si può effettuare un null edit sul template stesso.
Passiamo alla spiegazione del codice.
Il primo tag è "description" (descrizione), che fa esattamente quello, cioè descrivere a cosa serva il template.
Poi c'è il tag "params" (parametri) che indica che le sezioni che seguono sono relative a ciascun parametro del template.
In ogni sottosezione, il primo tag è quello del nome effettivo del parametro del template per come è richiamato nel template, seguito dal segno di uguale (=), cioè, se il parametro si chiama semplicemente "1=", il tag sarà "1" (se si chiama "casa=", il tag sarà "casa" ecc.). Se il parametro non ha o non sembra avere un nome, anche in quel caso va valorizzato come numero, cioè "1" (se è il primo nell'ordine in cui è impostato il template). Per vedere un esempio di template la cui sintassi non riporta esplicitamente i nomi dei parametri, cliccare qui.
A seguire c'è "label" (etichetta), in cui va inserito un titolo sensato per il parametro che sarà visualizzato dentro l'editor di template di VE per aiutare chi lo modificherà a capire cosa contiene.
Poi c'è "description" (descrizione) che è una descrizione del parametro specifico, non di tutto il template. Consiglio: inserire anche un breve esempio del risultato atteso, se possibile.
Dopo di che troviamo "type" (tipo), che controlla il modo in cui l'editor di template di VE interpreterà quel parametro; le possibilità sono "string" (una sequenza di caratteri, proprio come questa), "number" (serie di cifre), "string/wiki-user-name", (serie di caratteri che rappresenta il nome di un utente), "string/wiki-page-name" (serie di caratteri che rappresenta il titolo di una pagina).
Infine c'è "required" (richiesto), che può ovviamente essere solo "true" se la presenza di quel parametro è obbligatoria in quel template o "false" nel caso contrario.
Alcuni template permettono ad un parametro di assumere nomi diversi,
Ad esempio, {{Commons|categoria=Mele}} potrebbe essere scritto anche come {{Commons|Mele}} oppure come {{Commons|link=Mele}}.
Per aggiungere questa informazione a TemplateData, c'è solo bisogno di aggiungere i vari alias ("aliases") alle info sul parametro, ad es.
"params":{"categoria":{..."aliases":["1","link"]}
Alcuni template inoltre permettono ad un parametro di assumere un valore predefinito (valore di default) nel caso l'utente non ne specifichi il valore in modo esplicito. Per esempio, il template {{Azienda}} prevede per il parametro logo_dimensione il valore predefinito "200" (che sta a indicare che il logo verrà visualizzato come immagine da 200px di ampiezza), che però è possibile, in caso di necessità, impostare a un valore diverso (es. 150). Per indicare questa informazione a TemplateData, si può aggiungere il tag "default" alle info sul parametro, ad es.
"params":{"logo_dimensione":{..."default":"200"}
In caso di più parametri, basta ripetere ogni sezione (iniziando dal primo tag, che nell'esempio seguente sarà "Name") e compilarla con i dati richiesti.
Da notare che in caso di parametri multipli bisogna separarli con una virgola, così:
"params":{"Name":{...},<--notatelavirgolaqui"caption":{...},<--equi"image":{...}<--questaèl'ultima quindi non c'è}
Quando invece un template ha parametri multipli, a volte alcuni di essi possono essere dello stesso tipo. In questo caso, c'è solo bisogno di fornire le proprietà per il primo, e gli altri possono "ereditare" le loro proprietà da quello.
"params":{"topic1":{"label":"Topic","description":"A topic mentioned on this disambiguation page","type":"string",},"topic2":{"inherits":"topic1"},"topic3":{"inherits":"topic1"},}
Finito questo, bisogna premere "Salva". In caso di errori, non permetterà di salvare!, così non potrete far danni. In caso di difficoltà, si può usare la pagina dei feedback su VisualEditor, e vedremo di risolvere quanto prima.
User:NicoV/TemplateDataEditor è un semplice script (scritto in JavaScript) per "editare visivamente" TemplateData.
L'originale è stato scritto per fr.wiki da Ltrlg.
Lo script si trova nella sottopagina Utente:Jacopo Werther/TemplateDataEditor.js mentre il foglio di stile (CSS) (che sostanzialmente definisce tutti gli aspetti visivi della finestra dell'editor) si trova nella sottopagina Utente:Jacopo Werther/TemplateDataEditor.css. Ovviamente nulla impedisce di copiare script e foglio di stile in proprie sottopagine utente, avendo cura di sostituire (nello script) a "Utente:Jacopo Werther/..." il proprio nick. In questo caso va modificata anche la riga
È possibile importare direttamente lo script dalla sottopagina dell'autore presente sulla Wikipedia in francese, aggiungendo una riga con questo testo, punto e virgola incluso:
è fortemente consigliato seguire questa strada dato che l'autore Ltrlg ha annunciato che apporterà delle modifiche allo script per migliorarlo e risolvere alcuni bug. Inoltre Ltrlg ha aggiunto dalle rispettive wikipedie le traduzioni (anche in italiano). In questo modo si avrà la possibilità di utilizzare un editor sempre aggiornato e sempre in lingua italiana.
In alternativa allo Script di Ltrlg/NicoV è possibile utilizzare l'editor dell'utente polacco Lazowik;
non richiede alcuna installazione, basta riempire i vari campi e poi copiare e incollare il codice JSON generato.
Uno strumento ancor più automatico è Skeleton TemplateData Generator: legge il sorgente del template, cerca di trovare tutti i parametri presenti, utilizzando regexp /\{\{\{[^\{\|\}]+ e fornisce come risultato un abbozzo del TemplateData con tutti i parametri elencati. L'abbozzo potrà poi essere rifinito con uno dei due editor descritti.
Nel caso di un TemplateData particolarmente lungo può essere difficile scovare un errore e quindi capire perché non riusciamo a salvare la pagina. In questo caso può essere utile avere un tool per validare il codice. È disponibile all'indirizzo JSON Formatter/JSON to bsonJSONLint o JSON formatter.
Sentitevi liberi di intervenire come volete su questa sezione per organizzare più agevolmente il lavoro. Questi non sono tutti i template di it.wiki, ma i primi 1000: di questi, i primi 300 sono usati ognuno in almeno diecimila pagine. Ovviamente, concentriamoci su quelli che funzionano soprattutto nel namespace delle voci e in quello Utente! Per valutare da dove iniziare, ci si potrebbe porre queste domande:
Quali template ci sono nelle voci che io stesso scrivo/modifico più spesso?
Quali sono i template che uso di più o che incontro più di frequente?
Quali sono quelli che vorrei che un utente inesperto riuscisse facilmente a inserire/modificare?
Questo dovrebbe aiutarci a restringere inizialmente il campo. Inoltre, si possono momentaneamente saltare i template di navigazione. (Grazie a Oliver (WMF) per aver generato questo elenco. I link rossi possono essere ignorati.)
Template:Cassetto inizio
Quelli Template:In coda sono da considerare come da fare. Per quelli "protetti" è richiesto l'intervento di un admin (non hanno il /man oppure non è editabile)