七日内新公告:全站维护公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

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