Modulo:StyleVoc


(questa pagina è transclusa da Template:Stv/doc)

DescrizioneModifica

Il template è collegato a Modulo:StyleVoc e permette di concatenare un numero qualsiasi di espressioni di stile (coppie proprietà-valore) o di loro abbreviazioni mnemoniche in un'espressione complessiva corretta.

  • Ogni abbreviazione può essere costituita da una singola espressione, o da una sequenza di espressioni separate da punto e virgola.
  • Le abbreviazioni sono facilmente memorizzate all'interno di una tabella di Modulo:StyleVoc.
  • Dal punto di vista pratico, ogni abbreviazione si comporta come una classe css, costituendo un "nome" per una o più espressioni di stile.
  • La lista di abbreviazioni o di espressioni viene semplicemente passata al template come lista di parametri.
  • Il template può essere passato come valore di parametro nei template che accettano espressioni di stile (Cs, Ct, Type, Left, Blocco a destra.......)

Uso del templateModifica

Un comune problema nelle opere a formattazione complessa (es. titoli di vari livelli; blocchi di testi a destra con font particolare per citazioni; separatori di testo) è la definizione di codice omogeneo da applicare in tutta l'opera. Il problema si può risolvere con combinazioni precise di template annidati, riportati in Discussione pagina, con template opera-specifici o con altri accorgimenti. Stv permette di risolvere il problema con un unico template, e un unico parametro. Variando il codice associato all'abbreviazione-parametro, si adegua la formattazione in tutti i casi in cui il template è stato utilizzato (comportamento "tipo classe").

La compattezza e la regolarità nella struttura del template potrebbe facilitare la rilettura, spesso ostacolata dalla presenza di codice di formattazione "pesante".

EsempiModifica

Abbreviazioni semplici
  • {{stv|center}} -> text-align:center;
  • {{stv|center|smaller}} -> text-align:center;font-size:83%;
Abbreviazioni complesse
  • {{stv|titolo1}} -> font-size:175%;margin-top:3pc; margin-bottom:1.5pc; font-weight:bold;

Integrazione in template comuniModifica

Il template può essere integrato nel codice di template comuni; in questo caso il template "genitore" accetta direttamente l'abbreviazione come parametro, e chiama il template Stv con codice interno.

Una prima integrazione è stata effettuata nel comunissimo template Centrato, dove l'abbreviazione viene inserita come valore del parametro sv. Tenendo conto che il template Centrato prevede un parametro s dove può essere passata un'espressione di stile non abbreviata queste possibilità sono equivalenti:

{{Centrato|'''Prova'''}}

Prova

{{Centrato|s=font-weight:bold|Prova}}

Prova

{{Centrato|s={{stv|bold}}|Prova}}

Prova

{{Centrato|sv=bold|Prova}}

Prova

L'abbreviazione di una serie di dichiarazioni chiarisce i vantaggi, perchè definisce margine superiore e inferiore, grassetto, dimensione del testo con una sola parola:

{{Centrato|sv=titolo1|Prova}}

Il primo paragrafo....

Prova

Il primo paragrafo....

ApprofondimentoModifica

Vedi Modulo:StyleVoc.


--[=[

Uso:  
  {{#invoke:StyleVoc|vocabulary|right}}   produce al suo posto "text-align:right"

  {{#invoke:StyleVoc|vocabulary|justify}}  produce al suo posto "text-align:justify"
Per aggiungere dei 'casi' al vocabolario presente basta seguire gli esempi. 
Attenzione a chiudere bene le stringhe con "" sia come indice di tabella che come comando espanso.

-->]=]
local p = {} -- p stands for package


voc = {}
voc["c1"]="font-variant:small-caps;margin-bottom:1.5em;margin-top:3em;text-transform: lowercase"    -- usato in Il Milione
voc["c2"]="font-size:90%;margin-bottom:1.5em"                                                       -- usato in Il Milione
voc["sb1"]="margin-bottom:2em;margin-top:2em;font-size:90%;padding-left:2em;text-indent:-2em"        -- usato in Il Milione
voc["smbl1"]="font-size:90%; padding-top:1em; padding-bottom:1em"
voc["titolo1"]="font-size:175%;margin-top:3pc; margin-bottom:1.5pc; font-weight:bold"
voc["titolo2"]="font-size:130%; margin-top:1.5pc; margin-bottom:1.5pc; font-weight:bold"
voc["titolo3"]="font-size:120%; margin-top:0; margin-bottom:2pc"
voc["right"]="text-align:right"
voc["align right"]="text-align:right"
voc["right align"]="text-align:right"
voc["ar"]="text-align:right"
voc["center"]="text-align:center"
voc["centre"]="text-align:center"
voc["align center"]="text-align:center"
voc["center align"]="text-align:center"
voc["align centre"]="text-align:center"
voc["centre align"]="text-align:center"
voc["ac"]="text-align:center"
voc["left"]="text-align:left"
voc["align left"]="text-align:left"
voc["left align"]="text-align:left"
voc["al"]="text-align:left"
voc["justify"]="text-align:justify"
voc["align justify"]="text-align:justify"
voc["justify align"]="text-align:justify"
voc["aj"]="text-align:justify"
voc["transparent"]="background-color:transparent"
voc["transparency"]="background-color:transparent"
voc["bgt"]="background-color:transparent"
voc["border collapse"]="border-collapse:collapse"
voc["collapse"]="border-collapse:collapse"
voc["bc"]="border-collapse:collapse"
voc["border left"]="border-left:1px solid black"
voc["left border"]="border-left:1px solid black"
voc["bl"]="border-left:1px solid black"
voc["border right"]="border-right:1px solid black"
voc["right border"]="border-right:1px solid black"
voc["br"]="border-right:1px solid black"
voc["border top"]="border-top:1px solid black"
voc["top border"]="border-top:1px solid black"
voc["bt"]="border-top:1px solid black"
voc["border bottom"]="border-bottom:1px solid black"
voc["bottom border"]="border-bottom:1px solid black"
voc["bb"]="border-bottom:1px solid black"
voc["border all"]="border:1px solid black"
voc["border"]="border:1px solid black"
voc["ba"]="border:1px solid black"
voc["border none"]="border:none"
voc["no border"]="border:none"
voc["bn"]="border:none"
voc["btt"]="border-top:0px solid transparent"
voc["bbt"]="border-bottom:0px solid transparent"
voc["blt"]="border-left:0px solid transparent"
voc["brt"]="border-right:0px solid transparent"
voc["btt1"]="border-top:1px solid transparent"
voc["bbt1"]="border-bottom:1px solid transparent"
voc["blt1"]="border-left:1px solid transparent"
voc["brt1"]="border-right:1px solid transparent"
voc["ba2"]="border:2px solid black"
voc["bl2"]="border-left:2px solid black"
voc["br2"]="border-right:2px solid black"
voc["bt2"]="border-top:2px solid black"
voc["bb2"]="border-bottom:2px solid black"
voc["ba3"]="border:3px solid black"
voc["bl3"]="border-left:3px solid black"
voc["br3"]="border-right:3px solid black"
voc["bt3"]="border-top:3px solid black"
voc["bb3"]="border-bottom:3px solid black"
voc["bad"]="border:4px double black"
voc["bld"]="border-left:4px double black"
voc["brd"]="border-right:4px double black"
voc["btd"]="border-top:4px double black"
voc["bbd"]="border-bottom:4px double black"
voc["ba."]="border:1px dotted black"
voc["bl."]="border-left:1px dotted black"
voc["br."]="border-right:1px dotted black"
voc["br2."]="border-right:2px dotted black"
voc["bt."]="border-top:1px dotted black"
voc["bb."]="border-bottom:1px dotted black"
voc["bb2."]="border-bottom:2px dotted black"
voc["float"]="margin:0 auto 0 auto"
voc["float center"]="margin:0 auto 0 auto"
voc["float centre"]="margin:0 auto 0 auto"
voc["mc"]="margin:0 auto 0 auto"
voc["ma"]="margin-right:auto; margin-left:auto"
voc["ma5"]="margin:5px"
voc["mt5"]="margin-top:5px"
voc["mr5"]="margin-right:5px"
voc["mb5"]="margin-bottom:5px"
voc["ml5"]="margin-left:5px"
voc["ma10"]="margin:10px"
voc["mt10"]="margin-top:10px"
voc["mr10"]="margin-right:10px"
voc["mb10"]="margin-bottom:10px"
voc["ml10"]="margin-left:10px"
voc["lh95"]="line-height:95%"
voc["lh1"]="line-height:100%"
voc["lh10"]="line-height:100%"
voc["lh11"]="line-height:110%"
voc["lh12"]="line-height:120%"
voc["lh13"]="line-height:130%"
voc["lh15"]="line-height:150%"
voc["lh2"]="line-height:200%"
voc["lh20"]="line-height:200%"
voc["small caps"]="font-variant:small-caps"
voc["small capitals"]="font-variant:small-caps"
voc["sc"]="font-variant:small-caps"
voc["fvn"]="font-variant:normal"
voc["smaller"]="font-size:83%"
voc["sm"]="font-size:83%"
voc["sm80"]="font-size:80%"
voc["sm85"]="font-size:85%"
voc["sm90"]="font-size:90%"
voc["sm92"]="font-size:92%"
voc["sm95"]="font-size:95%"
voc["sm110"]="font-size:110%"
voc["x-smaller"]="font-size:69%"
voc["xs"]="font-size:69%"
voc["xx-smaller"]="font-size:58%"
voc["xxs"]="font-size:58%"
voc["larger"]="font-size:120%"
voc["lg"]="font-size:120%"
voc["x-larger"]="font-size:144%"
voc["xl"]="font-size:144%"
voc["xx-larger"]="font-size:182%"
voc["2xl"]="font-size:182%"
voc["xxl"]="font-size:182%"
voc["xxx-larger"]="font-size:207%"
voc["3xl"]="font-size:207%"
voc["xxxx-larger"]="font-size:249%"
voc["4xl"]="font-size:249%"
voc["upper case"]="text-transform:uppercase"
voc["upper-case"]="text-transform:uppercase"
voc["uppercase"]="text-transform:uppercase"
voc["uc"]="text-transform:uppercase"
voc["lower case"]="text-transform:lowercase"
voc["lower-case"]="text-transform:lowercase"
voc["lowercase"]="text-transform:lowercase"
voc["lc"]="text-transform:lowercase"
voc["capitalise"]="text-transform:capitalize"
voc["capitalize"]="text-transform:capitalize"
voc["cap"]="text-transform:capitalize"
voc["float left"]="float:left"
voc["fll"]="float:left"
voc["float right"]="float:right"
voc["flr"]="float:right"
voc["roman"]="font-style:normal"
voc["fsn"]="font-style:normal"
voc["italic"]="font-style:italic"
voc["i"]="font-style:italic"
voc["fsi"]="font-style:italic"
voc["normal"]="font-weight:normal"
voc["fwn"]="font-weight:normal"
voc["bold"]="font-weight:bold"
voc["b"]="font-weight:bold"
voc["fwb"]="font-weight:bold"
voc["itp"]="padding-left:2.0em; text-indent:-1.0em"
voc["itp.5"]="padding-left:2.5em; text-indent:-2.0em"
voc["it1p.5"]="padding-left:1.5em; text-indent:-1.0em"
voc["it1p2"]="padding-left:3.0em; text-indent:-1.0em"
voc["it"]="padding-left:2.0em; text-indent:-2.0em"
voc["it1"]="padding-left:1.0em; text-indent:-1.0em"
voc["it42"]="padding-left:4.0em; text-indent:-2.0em"
voc["pl0"]="padding-left:0"
voc["pl.5"]="padding-left:0.5em"
voc["pl1"]="padding-left:1.0em"
voc["pl15"]="padding-left:1.5em"
voc["pl2"]="padding-left:2.0em"
voc["pl3"]="padding-left:3.0em"
voc["pl3.5"]="padding-left:3.5em"
voc["pl4"]="padding-left:4.0em"
voc["pl5"]="padding-left:5.0em"
voc["pl6"]="padding-left:6.0em"
voc["pl7"]="padding-left:7.0em"
voc["pr0"]="padding-right:0"
voc["pr.5"]="padding-right:0.5em"
voc["pr1"]="padding-right:1.0em"
voc["pr15"]="padding-right:1.5em"
voc["pr2"]="padding-right:2.0em"
voc["pr3"]="padding-right:3.0em"
voc["pr3.5"]="padding-right:3.5em"
voc["pr4"]="padding-right:4.0em"
voc["pr5"]="padding-right:5.0em"
voc["pr6"]="padding-right:6.0em"
voc["pr7"]="padding-right:7.0em"
voc["pt0"]="padding-top:0"
voc["ptb.5"]="padding-top:0.5em; padding-bottom:0.5em"
voc["ptb1"]="padding-top:1em; padding-bottom:1em"
voc["pt.5"]="padding-top:0.5em"
voc["pt1"]="padding-top:1.0em"
voc["pt15"]="padding-top:1.5em"
voc["pt2"]="padding-top:2.0em"
voc["pt3"]="padding-top:3.0em"
voc["pt4"]="padding-top:4.0em"
voc["pt5"]="padding-top:5.0em"
voc["pb0"]="padding-bottom:0"
voc["pb.5"]="padding-bottom:0.5em"
voc["pb1"]="padding-bottom:1.0em"
voc["pb15"]="padding-bottom:1.5em"
voc["pb2"]="padding-bottom:2.0em"
voc["pb3"]="padding-bottom:3.0em"
voc["pb4"]="padding-bottom:4.0em"
voc["pb5"]="padding-bottom:5.0em"
voc["rtl"]="direction:rtl"
voc["vertical align text top"]="vertical-align:text-top"
voc["text top"]="vertical-align:text-top"
voc["vtt"]="vertical-align:text-top"
voc["vertical align text bottom"]="vertical-align:text-bottom"
voc["text bottom"]="vertical-align:text-bottom"
voc["vtb"]="vertical-align:text-bottom"
voc["vertical align top"]="vertical-align:top"
voc["top"]="vertical-align:top"
voc["vtp"]="vertical-align:top"
voc["vertical align baseline"]="vertical-align:baseline"
voc["baseline"]="vertical-align:baseline"
voc["vbs"]="vertical-align:baseline"
voc["vertical align bottom"]="vertical-align:bottom"
voc["bottom"]="vertical-align:bottom"
voc["vbm"]="vertical-align:bottom"
voc["vertical align middle"]="vertical-align:middle"
voc["middle"]="vertical-align:middle"
voc["vmi"]="vertical-align:middle"
voc["width all"]="width:100%"
voc["full width"]="width:100%"
voc["full"]="width:100%"
voc["wa"]="width:100%"
voc["w20"]="width:20%"
voc["quarter width"]="width:25%"
voc["quarter"]="width:25%"
voc["w25"]="width:25%"
voc["third width"]="width:33%"
voc["third"]="width:33%"
voc["w33"]="width:33%"
voc["w40"]="width:40%"
voc["half width"]="width:50%"
voc["half"]="width:50%"
voc["w50"]="width:50%"
voc["w60"]="width:60%"
voc["two thirds width"]="width:67%"
voc["two thirds"]="width:67%"
voc["two-thirds"]="width:67%"
voc["two third"]="width:67%"
voc["two-third"]="width:67%"
voc["w67"]="width:67%"
voc["three quarter width"]="width:75%"
voc["three quarter"]="width:75%"
voc["three-quarter"]="width:75%"
voc["three quarters"]="width:75%"
voc["three-quarters"]="width:75%"
voc["w75"]="width:75%"
voc["w80"]="width:80%"
voc["w100"]="width:100em"
voc["width narrow"]="width:0"
voc["narrow"]="width:0"
voc["w0"]="width:0"
voc["nowrap"]="white-space:nowrap"
voc["wnw"]="white-space:nowrap"
voc["rot"]="-webkit-transform:rotate(-90deg);-moz-transform: rotate(-90deg);-ms-transform: rotate(-90deg);-o-transform: rotate(-90deg);transform: rotate(-90deg)"
voc["red"]="color:red"

function p.vocabulary(frame)
	local f=frame
	-- local lista= mw.text.split(f.args[1],",")
	local result=""
	for i,el in ipairs(f.args) do
		if voc[el]==null then 
			result=result..el..";"
		else result=result..voc[el]..";"
			end
		end
    return result
end

function p.templ(frame)
	local f=frame:getParent()
	-- local lista= mw.text.split(f.args[1],",")
	local result=""
	for i,el in ipairs(f.args) do
		if voc[el]==null then 
			result=result..el..";"
		else result=result..voc[el]..";"
			end
		end
    return result
end

return p




--[==[
<noinclude>
{{Documentazione|Modulo:StyleVoc/doc}}
</noinclude>
--]==]