Módulo:Argumentos
De Bioeticawiki
La documentación para este módulo puede ser creada en Módulo:Argumentos/doc
local z = {}
function z.obtenerArgumentos(frame)
if frame.args[1] then
return frame.args
end
return frame:getParent().args
end
function z.obtenerArgumentosConValor(frame)
if frame == mw.getCurrentFrame() then
argumentos = frame:getParent().args
else
argumentos = frame.args or frame
end
return require('Módulo:Tablas').copiarElementosConValor(argumentos)
end
-- Obtiene los argumentos con valores de la plantilla en minúsculas y con las
-- tildes removidas, en caso de que las tenga de forma que sea más sencillo
-- trabajar con las distintas variantes en los módulos.
--
-- Nota: En caso de que haya parámetros duplicados tras la normalización solo
-- se mantendrá el último valor procesado por la función.
--
-- Parámetros de entrada:
-- frame: El marco utilizado por el módulo
--
-- Parámetros de salida:
-- argumentosNormalizados: los argumentos con valor y nombre normalizado
-- argumentosDuplicados: si la plantilla tiene varias veces el mismo
-- argumento tras la normalización o no
function z.obtenerArgumentosConValorNormalizados(frame)
local argumentos = z.obtenerArgumentosConValor(frame)
local argumentosNormalizados = {}
local nombreNormalizado
local argumentosDuplicados = false
for nombre, valor in pairs(argumentos) do
nombreNormalizado = nombre
nombreNormalizado = mw.ustring.lower( nombreNormalizado )
nombreNormalizado = string.gsub(nombreNormalizado, "[á]", "a")
nombreNormalizado = string.gsub(nombreNormalizado, "[é]", "e")
nombreNormalizado = string.gsub(nombreNormalizado, "[í]", "i")
nombreNormalizado = string.gsub(nombreNormalizado, "[ó]", "o")
nombreNormalizado = string.gsub(nombreNormalizado, "[úü]", "u")
if argumentosNormalizados[nombreNormalizado] then
argumentosDuplicados = true
end
argumentosNormalizados[nombreNormalizado] = valor
end
return argumentosNormalizados, argumentosDuplicados
end
return z