Module:ProcessArgs/doc

来自NeuroWiki
Selfice留言 | 贡献2024年10月31日 (四) 22:09的版本 (创建页面,内容为“{{documentation header}} <!-- 文档页面 --> 该模块将参数添加到一个表中以便模块使用。 == 用法 == 该模块通常只能在其他模块中调用,否则会出错。 === norm函数 === <syntaxhighlight lang="lua"> require('Module:ProcessArgs').norm(origArgs) </syntaxhighlight> * {{cd|origArgs}}:可选(表),用于指定{{cd|args}}表,默认值为父框架<ref group="注" name="frame">通常为{{tcd|#invoke:}}所在页面的框…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

这是Module:ProcessArgs的文档页面

[ 刷新 ]
这是文档页面,它将被放置到Module:ProcessArgs。查看Template:Documentation以获取更多信息。

该模块将参数添加到一个表中以便模块使用。

用法

该模块通常只能在其他模块中调用,否则会出错。

norm函数

<syntaxhighlight lang="lua"> require('Module:ProcessArgs').norm(origArgs) </syntaxhighlight>

  • origArgs:可选(表),用于指定args表,默认值为父框架[注 1]args表。值为其他类型(包括nil)时取默认值。

该函数会将origArgs表中所有值的多余空字符删去(若表中某个值全部由空字符组成,则将其设置为nil),并返回修改后的表。

merge函数

<syntaxhighlight lang="lua"> require('Module:ProcessArgs').merge(origArgs,parentArgs,norm) </syntaxhighlight>

  • origArgs:可选(表),用于指定args表,默认值为当前框架[注 2]args表。值为其他类型(包括nil)时先用该值覆盖norm的值,然后取默认值。
  • parentArgs:可选(表),用于指定args表,当origArgs不是表时默认值为父框架[注 1]args表。值为其他类型(包括nil)时会出错。
  • norm:可选(布尔值),用于指定是否将表中全部由空字符组成的值设置为nil。当origArgs不是表时取origArgs的值。

该函数会将origArgsparentArgs这两个表合并(若两个表有相同的键,则优先取parentArgs中的值),同时将表中所有值的多余空字符删去,并返回合并后的表。

  1. 1.0 1.1 通常为{{#invoke:}}所在页面的框架。
  2. 通常为{{#invoke:}}创建的框架。

示例

假设模块:Example包含以下代码:

<syntaxhighlight lang="lua"> local p = {} function p.args(f) local arg1 = require('Module:ProcessArgs').norm() local arg2 = require('Module:ProcessArgs').norm(f.args) local arg3 = require('Module:ProcessArgs').merge(true) return mw.allToString(arg1[1],arg2[2],arg2['args'],arg3.name) end return p </syntaxhighlight>

Template:Example包含以下代码:

{{#invoke:Example|args|foo|&nbsp;&nbsp;bar&nbsp;&nbsp;|ba&nbsp;z|name=&nbsp;na&nbsp;&nbsp;me&nbsp;}}

页面Example包含以下代码:

{{Example|&nbsp;&nbsp;a&nbsp;&nbsp;rg1&nbsp;&nbsp;&nbsp;&nbsp;|2=arg2|args=abc&nbsp;}}

那么页面Example将会显示:

a  rg1 bar nil na me