本站页面(多半)转载自萌娘百科的同名页面,依CC BY-NC-SA 3.0引入,贡献者可以在历史页查询。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
- 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
- 本镜像站和其他萌娘百科的镜像站无关,请注意分别。
Module:Call
跳到导航
跳到搜索
本模块用于在一个模板(Caller)中调用另一个模板(Callee)。由于技术限制,请直接在Caller中使用{{#invoke:Call}}
调用此模块。
用法
{{#invoke:Call|main|模板名[|其他参数]}}
- 输入
-
- 1:模板(Callee)名。
- 其他参数:可以在模板(Caller)中指定调用另一个模板(Callee)时的参数。若其他页面(Page)调用此模板(Caller)时指定了同名参数,则页面(Page)中指定的参数值不会起作用,即模板(Caller)源代码中的参数具有较高的优先级。
- 输出
- 调用Callee的结果,其参数由Caller的源代码和调用Caller的页面指定。
局限性
由于Lua自身的局限性,具名参数的传入顺序并非是确定的,因此使用{{#forargs:}}
解析器函数的结果可能与预期不符。
local p = {} local getArgs = require('Module:Arguments').getArgs function p._main(frame, args, is_default_value) local calleeName = args[1] if (not calleeName) or (calleeName == "") then return "" end local wrapperArgs = getArgs(frame, { parentOnly = true }) for k, v in pairs(args) do local k_number = tonumber(k) if k_number then if k_number > 1 then if not (wrapperArgs[k_number - 1] and is_default_value) then wrapperArgs[k_number - 1] = v end end else if not (wrapperArgs[k] and is_default_value) then wrapperArgs[k] = v end end end -- mw.logObject(wrapperArgs) return frame:expandTemplate({ title = calleeName, args = wrapperArgs }) end function p.main(frame) return p._main(frame, getArgs(frame, { frameOnly = true }), false) end function p.default(frame) return p._main(frame, getArgs(frame, { frameOnly = true }), true) end return p