local module = {}
local getArgs = require('Module:Arguments').getArgs
function module.define(frame, args)
local tl = args['tl']
tl = mw.text.unstripNoWiki(tl)
tl = mw.text.decode(tl)
local result = ''
for _, i in ipairs(args) do
local ok, params = pcall(mw.text.jsonDecode, i)
if ok then
local frame_child = frame:newChild({args = params})
result = result..frame_child:preprocess(tl)
else
result = result..i
end
end
return result
end
function module.use(frame, args)
return mw.text.jsonEncode(args)
end
function module.main(frame)
local args = getArgs(frame, { removeBlanks = false })
if args['tl'] ~= nil then
-- {{pt\l2|tl=<nowiki>...<nowiki>| {{pt\l2|use| ...argv }} | {{pt\l2|use| ...argv }} | ... }}
return module.define(frame, args)
end
if args['use'] ~= nil then
-- {{pt\l2|use=foo| ...argv }}
args['use'] = nil
return module.use(frame, args)
end
if args[1] == 'use' then
-- {{pt\l2|use| ...argv }}
for i, v in ipairs(args) do
args[i] = args[i+1]
end
return module.use(frame, args)
end
-- {{pt\l2| ...argv }}
return module.use(frame, args)
end
return module