Módulo:ProcessArgs
Esta es la página de documentación, debería ser transcluida a la página de plantilla principal. Véase Plantilla:Documentation para más información.
Este módulo permite a los argumentos su fusionado y normalizado. Esto también tiene el efecto secundario de hacer que los argumentos de una tabla real, en lugar de una tabla vacía con un metatabla para acceder a los argumentos. Esto permite que el operador #
trabaje, así como permite añadir nuevos valores a la tabla, sin ser ignorados cuando se repiten.
La función norm
normalizará los argumentos que se le pasan, recortará los espacios en blanco y establecerá los argumentos vacíos para nil
. Si una tabla no se pasa a la función, se obtendrá automáticamente la tabla de argumentos de los padres de la trama actual.
La función merge
fusionará dos tablas, sobrescribiendo valores duplicados de la segunda tabla con el valor de la primera tabla, así como hará lo mismo que la función norm
si el parámetro norm es true
.
Si el primer parámetro no es una tabla, se utiliza como valor para el parámetro norm, y se obtendrá automáticamente la tabla de argumentos pasando directamente de la trama actual y fusionandose con la tabla de argumentos de los padres de la trama actual.
local p = {} function p.norm( origArgs ) if type( origArgs ) ~= 'table' then origArgs = mw.getCurrentFrame():getParent().args end local args = {} for k, v in pairs( origArgs ) do v = mw.text.trim( tostring( v ) ) if v ~= '' then args[k] = v end end return args end function p.merge( origArgs, parentArgs, norm ) if type( origArgs ) ~= 'table' then norm = origArgs local f = mw.getCurrentFrame() origArgs = f.args parentArgs = f:getParent().args end local args = {} for k, v in pairs( origArgs ) do v = mw.text.trim( tostring( v ) ) if not norm or norm and v ~= '' then args[k] = v end end for k, v in pairs( parentArgs ) do v = mw.text.trim( v ) if ( not norm or norm and v ~= '' ) and not args[k] then args[k] = v end end return args end return p