Mòdul:Paràmetres
A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]
Aquest mòdul ha estat substituït. Les funcions separaObraAny i extreuNomArxiu no es fan servir. La funció numPara ara es fa mitjançant {{count}} i la funció extreuCometesSimples per la {{Trim single quotes}}. Si teniu algun dubte o comentari, feu servir la pàgina de discussió |
Aquest mòdul està pensat per ajudar a assegurar la compatibilitat entre plantilles, sobretot en casos quan una plantilla s'actualitza al cap d'uns anys i cal que funcioni tant amb el nou plantejament com amb l'original.
A continuació es detalla el funcionament de les funcions disponibles.
Funcions
[modifica]extreuNomArxiu
[modifica]La funció extreuNomArxiu serveix per extreure el nom d'un arxiu en el cas que l'usuari hagi entrat el paràmetre de la forma [[Fitxer:Nom arxiu.jpg|250px]] i no directament de la forma Nom arxiu.jpg. És especialment útil per adaptar plantilles a nous formats i assegurar compatibilitats amb versions anteriors. Sintaxi:
- {{#invoke:paràmetres|extreuNomArxiu|cadena}}
extreuCometesSimples
[modifica]Ídem que l'anterior, però extreu les cometes simples (tantes com n'hi hagi) d'una cadena de text. Sintaxi:
- {{#invoke:paràmetres|extreuCometesSimples|cadena}}
separaObraAny
[modifica]Serveix pels camps "precedit per" i "seguit per" d'infotaules com ara {{Infotaula de llibre}}. Bàsicament el que fa és donar format homogeni a l'obra (que ha d'anar en cursiva) i l'any (que no hi ha d'anar), independentment de com ho entri l'usuari.
- {{#invoke:paràmetres|separaObraAny|cadena}}
Per exemple:
- {{#invoke:paràmetres|separaObraAny|[[Els cigars del faraó]] ''([[1937]])'}}
- Els cigars del faraó (1937)
Amb un primer paràmetre addicional "sí" s'indica que es vol un salt de línia entre obra i any. Amb un segon paràmetre addicional "sí" s'indica que es vol el nom de l'obra en negreta. Amb un tercer paràmetre addicional "sí" s'indica que en comptes de cursiva es volen cometes baixes.
numPara
[modifica]Compta el número de paràmetres passats amb una plantilla, per exemple {{count}} o {{llista aleatòria}}. Sintaxi:
- {{#invoke:paràmetres|numPara}}
Amb la sintaxi {{#invoke:paràmetres|numPara|buits=no}} no compta els paràmetres buits o en blanc.
--[[
Aquest mòdul està pensat per ajudar a assegurar la compatibilitat entre plantilles, sobretot en casos
quan una plantilla s'actualitza al cap d'uns anys i cal que funcioni tant amb el nou
plantejament com amb l'original.
]]
local p = {}
--[[ extreuNomArxiu
Paràmetres
1: cadena de text de la qual s'ha d'extreure el nom d'arxiu
]]
function p.extreuNomArxiu(frame)
local arg = frame.args[1] or "" -- per evitar nil
return mw.ustring.match(arg, ":(.+%.%a+)") or arg
end
--[[ extreuCometesSimples
Paràmetres
1: cadena de text de la qual s'ha d'extreure les cometes dobres de curvisa o triples de negreta
]]
function p.extreuCometesSimples(frame)
local arg = frame.args[1] or "" -- per evitar nil
return mw.ustring.gsub(arg, "^'+(.-)'+$", "%1") or arg
end
--[[ separaObraAny
Paràmetres
1: cadena de text de la qual s'ha de separar l'obra i l'any, i posar cometes a l'obra
]]
function p.separaObraAny(frame)
local arg = frame.args[1] or "" -- per evitar nil
local salt = frame.args[2] or "" -- per evitar nil
local negreta = frame.args[3] or "" -- per evitar nil
local baixes = frame.args[4] or "" -- per evitar nil
arg = mw.ustring.gsub(arg, "<br( -)/->", " ") or arg --[[treu salts]]
any = mw.ustring.match(arg, "%d+") or ""
any = mw.ustring.gsub(any, "^'+(.-)'+$", "%1") or any --[[treu cometes]]
text = mw.ustring.match(arg, "(.*) .*%(") or ""
text = mw.ustring.gsub(text, "^\"+(.-)\"+$", "%1") or text --[[treu cometes dobles]]
text = mw.ustring.gsub(text, "^'+(.-)'+$", "%1") or text --[[treu cometes]]
text = mw.ustring.gsub(text, "^\"+(.-)\"+$", "%1") or text --[[treu cometes dobles]]
text = mw.ustring.gsub(text, "^«+(.-)»+$", "%1") or text --[[treu cometes baixes]]
if negreta=="sí" then
text = "'''"..text.."'''"
end
if baixes == "sí" then
text="«"..text.."»"
else
text="''"..text.."''"
end
if any~="" then
if text~="" then
if salt=="sí" then
final=text.."<br />("..any..")"
else
final=text.." ("..any..")"
end
end
else
text = mw.ustring.match(arg, "(.*)") or ""
text = mw.ustring.gsub(text, "^\"+(.-)\"+$", "%1") or text --[[treu cometes dobles]]
text = mw.ustring.gsub(text, "^'+(.-)'+$", "%1") or text --[[treu cometes]]
text = mw.ustring.gsub(text, "^\"+(.-)\"+$", "%1") or text --[[treu cometes dobles]]
text = mw.ustring.gsub(text, "^«+(.-)»+$", "%1") or text --[[treu cometes baixes]]
if text~="" then
if negreta=="sí" then
text = "'''"..text.."'''"
end
if baixes == "sí" then
text="«"..text.."»"
else
text="''"..text.."''"
end
end
final=text
end
return final or "Error"
end
--[[ numPara
Compta el número de paràmetres, passats pel frame superior;
a notar que #frame.args no funciona per ser una metataula
]]
function p.numPara( frame )
local args = frame.args
local pargs = frame:getParent().args
local nobuit = args.buits == "no"
local comptaArgs = 0
if pargs == nil then return 0 end
for _, val in pairs(pargs) do
if not (nobuit and mw.text.trim(val) == "") then
comptaArgs = comptaArgs + 1
end
end
return comptaArgs
end
return p