Documentation for this module may be created at Module:ProcessArgs/doc
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 ~= '' then
args[k] = v
end
end
return args
end
function p.replaceAll( frame )
local args = frame
local curFrame = mw.getCurrentFrame()
if frame == mw.getCurrentFrame() then
args = require( 'Module:ProcessArgs').norm()
end
local x = 3
local t = args[2]
while args[x] do
t = string.gsub(t, args[x], "")
x = x + 1
end
curFrame:callParserFunction{name='#vardefine:'..args[1], args = {t} }
return
end
return p