• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Module:Sandbox/Nzh21/sandbox

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Template-info.svg 模块文档  [创建] [刷新]
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