Come ormai in molti sanno, i Template colore non vanno più usati: sono molto pesanti per il server ed gika ha scovato una soluzione più efficiente.
Tale soluzione è un modulo scritto in Lua immerso nel software Mediawiki tramite l'estensione Scribunto. Se anche non avete capito un'acca della frase precedente, niente panico, in realtà non ci ho capito molto nemmeno io.
Fatto sta che, all'atto pratico, cambia il wikicode da utilizzare (se il box sottostante non è chiaro fatemelo presente):
{{colore qualcosa sfumatura}} --> {{#invoke: colore | qualcosa | sfumatura}}
{{textcolor qualcosa}} --> {{#invoke: colore | qualcosa_text}}
{{colorezona/sfumatura|qualcosa}} --> {{#invoke: colore | zona_qualcosa | sfumatura}}
{{colorezona/text|qualcosa}} --> {{#invoke: colore | zona_text | qualcosa}}
Gli spazi sono opzionali ma facilitano la lettura del codice. I nomi con spazi (es: Nero 2) al momento hanno un underscore (_) al posto dello spazio.
Per gli admin (chi non lo è tanto non può modificare il modulo, pappappero!):
Il Modulo si trova nella pagina Modulo:colore.
Modificare un colore
Cercate la riga del colore in questione, la prima che appare facendo una ricerca con Ctrl + F. Dovrebbe avere questo aspetto:
c.colore = function(frame) return _colore(frame.args[1] or 'normale', 'hex_standard', 'hex_light', 'hex_dark') end
Laddove "colore" è il nome del colore, "hex_standard' è il valore esadecimale del colore standard (né light né dark, per intenderci), "hex_light" il valore del colore light, e, indovinate un po', "hex_dark" il valore dark.
Per modificare una sfumatura dunque basta semplicemente cambiare il valore esadecimale corrispondente.
Creare un nuovo colore
Esistono quattro tipologie di colori differenti (per implementazione nel modulo):
Colore "standard" e Colore zona
Cercate un colore di questa tipologia e copiatene la riga di codice; dovrebbe essere come questa:
c.colore = function(frame) return _colore(frame.args[1] or 'normale', 'hex_standard', 'hex_light', 'hex_dark') end
Con la piccola differenza che il colore zona ha un "c.zona_colore" all'inizio: in entrambi i casi "colore" è il nome del colore analogo scelto a caso da voi, e "hex_standard", "hex_light" e "hex_dark" sono dei valori esadecimali.
A questo punto incollatela da qualche parte nel modulo (possibilmente nella categoria di colori giusta) e:
Ora dovrete creare la versione con l'iniziale maiuscola: per fare ciò scrivete, sotto il colore appena creato
c.Colore = c.colore
In cui ovviamente "colore" è il nome del nuovo colore (nel caso sia un colore zona, con il "zona_" incluso). Se avete in mente altri possibili varianti di maiuscole/minuscole, fate così:
c.Colore, c.variante1, c.variante2 = c.colore, c.colore, c.colore
Vale a dire aggiungere le varianti, separate da una virgola, a sinistra dell' = e aggiungere tanti "c.colore" quante sono le varianti a destra dell' =, sempre separati da virgole.
Colore testo
Cercate una riga di un colore testo e copiatela: dovrebbe avere questo aspetto
c.colore_text = function(frame) return 'hex_text' end
In cui "colore" è il nome del colore e "hex_text" il valore esadecimale del colore.
Ora non vi resta da fare che incollarla nel modulo (possibilmente nella sezione giusta) e
c.Colore_text, c.variante1 = c.colore_text, c.colore_text
in cui "colore" è il nome del nuovo colore e le varianti possono essere più di una, ma sempre separate da virgole. A destra dell' = ci vanno tanti "c.colore" quanti sono gli elementi a sinistra dell' = (numero delle varianti + 1), sempre separati da virgole.
Colore zona testo
Questa tipologia è molto più difficile delle altre, ragion per cui se si è digiuni di programmazione, è bene chiedere a un admin che ne sappia di più, leggasi Maze o Gkx (qualunque admin che sappia programmare è libero di aggiungersi alla lista). Per i motivi di cui sopra, utilizzerò un lessico più specifico.
Cercare la funzione c.zona_text, e inserire un altro if in cascata prima dell'ultimo else, con la parola chiave elseif.
La condizione è a == 'nome', e volendo anche quella con il nome in inglese in or con la prima.
Il blocco è banalmente un return con l'esadecimale del nuovo colore, sempre tra singoli apici.
Se il colore è già presente negli altri return, allora inserire la condizione del nuovo nome in or con le altre già presenti.
Tale soluzione è un modulo scritto in Lua immerso nel software Mediawiki tramite l'estensione Scribunto. Se anche non avete capito un'acca della frase precedente, niente panico, in realtà non ci ho capito molto nemmeno io.
Fatto sta che, all'atto pratico, cambia il wikicode da utilizzare (se il box sottostante non è chiaro fatemelo presente):
{{colore qualcosa sfumatura}} --> {{#invoke: colore | qualcosa | sfumatura}}
{{textcolor qualcosa}} --> {{#invoke: colore | qualcosa_text}}
{{colorezona/sfumatura|qualcosa}} --> {{#invoke: colore | zona_qualcosa | sfumatura}}
{{colorezona/text|qualcosa}} --> {{#invoke: colore | zona_text | qualcosa}}
Gli spazi sono opzionali ma facilitano la lettura del codice. I nomi con spazi (es: Nero 2) al momento hanno un underscore (_) al posto dello spazio.
Per gli admin (chi non lo è tanto non può modificare il modulo, pappappero!):
- Non modificate i template colore, ma direttamente il modulo
- Non create nuovi template colore, ma fatelo direttamente nel modulo
Il Modulo si trova nella pagina Modulo:colore.
Modificare un colore
Cercate la riga del colore in questione, la prima che appare facendo una ricerca con Ctrl + F. Dovrebbe avere questo aspetto:
c.colore = function(frame) return _colore(frame.args[1] or 'normale', 'hex_standard', 'hex_light', 'hex_dark') end
Laddove "colore" è il nome del colore, "hex_standard' è il valore esadecimale del colore standard (né light né dark, per intenderci), "hex_light" il valore del colore light, e, indovinate un po', "hex_dark" il valore dark.
Per modificare una sfumatura dunque basta semplicemente cambiare il valore esadecimale corrispondente.
Creare un nuovo colore
Esistono quattro tipologie di colori differenti (per implementazione nel modulo):
- Colore "standard"
- Colore testo
- Colore zona
- Colore zona testo
Colore "standard" e Colore zona
Cercate un colore di questa tipologia e copiatene la riga di codice; dovrebbe essere come questa:
c.colore = function(frame) return _colore(frame.args[1] or 'normale', 'hex_standard', 'hex_light', 'hex_dark') end
Con la piccola differenza che il colore zona ha un "c.zona_colore" all'inizio: in entrambi i casi "colore" è il nome del colore analogo scelto a caso da voi, e "hex_standard", "hex_light" e "hex_dark" sono dei valori esadecimali.
A questo punto incollatela da qualche parte nel modulo (possibilmente nella categoria di colori giusta) e:
- Inserite il nome del nuovo colore al posto di quello vecchio, dopo il "c." per intenderci, tutto in minuscolo (nel caso sia un colore cona, con il "zona_" incluso)
- Inserite al posto di "hex_standard" l'esadecimale standard, al posto di "hex_light" quello light e (ma dai?!?) l'esadecimale dark al posto di "hex_dark". Fate attenzione a rispettare l'ordine, altrimenti il colore sballa, e a lasciare i singoli apici ai lati degli esadecimali.
Ora dovrete creare la versione con l'iniziale maiuscola: per fare ciò scrivete, sotto il colore appena creato
c.Colore = c.colore
In cui ovviamente "colore" è il nome del nuovo colore (nel caso sia un colore zona, con il "zona_" incluso). Se avete in mente altri possibili varianti di maiuscole/minuscole, fate così:
c.Colore, c.variante1, c.variante2 = c.colore, c.colore, c.colore
Vale a dire aggiungere le varianti, separate da una virgola, a sinistra dell' = e aggiungere tanti "c.colore" quante sono le varianti a destra dell' =, sempre separati da virgole.
Colore testo
Cercate una riga di un colore testo e copiatela: dovrebbe avere questo aspetto
c.colore_text = function(frame) return 'hex_text' end
In cui "colore" è il nome del colore e "hex_text" il valore esadecimale del colore.
Ora non vi resta da fare che incollarla nel modulo (possibilmente nella sezione giusta) e
- Sostituire il nome del colore con il nuovo, tutto in minuscolo, lasciando "_text" dopo
- Inserire il valore esadecimale nuovo al posto di "hex_text". Attenzione a lasciare gli apicini ai lati.
c.Colore_text, c.variante1 = c.colore_text, c.colore_text
in cui "colore" è il nome del nuovo colore e le varianti possono essere più di una, ma sempre separate da virgole. A destra dell' = ci vanno tanti "c.colore" quanti sono gli elementi a sinistra dell' = (numero delle varianti + 1), sempre separati da virgole.
Colore zona testo
Questa tipologia è molto più difficile delle altre, ragion per cui se si è digiuni di programmazione, è bene chiedere a un admin che ne sappia di più, leggasi Maze o Gkx (qualunque admin che sappia programmare è libero di aggiungersi alla lista). Per i motivi di cui sopra, utilizzerò un lessico più specifico.
Cercare la funzione c.zona_text, e inserire un altro if in cascata prima dell'ultimo else, con la parola chiave elseif.
La condizione è a == 'nome', e volendo anche quella con il nome in inglese in or con la prima.
Il blocco è banalmente un return con l'esadecimale del nuovo colore, sempre tra singoli apici.
Se il colore è già presente negli altri return, allora inserire la condizione del nuovo nome in or con le altre già presenti.
Ultima modifica di un moderatore: