Module:JSON arguments
Appearance
-- Returns the frame's passed arguments as a JSON object, used for reusing
-- data between a parent and child template.
-- You are meant to invoke this in a template without parameters.
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame, {
trim = true,
removeBlanks = false
})
return p._main(frame, args)
end
function p._main(frame, args)
local finalArgs = {}
local exclude = {}
for v in mw.ustring.gmatch(args["exclude"] or "", "[^,]+") do
table.insert(exclude, v)
end
for k, v in pairs(frame:getParent().args) do
local excluded = false
for _, ev in pairs(exclude) do
if ev == k then
excluded = true
end
end
if not excluded then
finalArgs[k] = v
end
end
return mw.text.jsonEncode(finalArgs)
end
return p