模組:ProcessArgs/doc

於 2024年10月31日 (四) 22:09 由 Selfice對話 | 貢獻 所做的修訂 (创建页面,内容为“{{documentation header}} <!-- 文档页面 --> 该模块将参数添加到一个表中以便模块使用。 == 用法 == 该模块通常只能在其他模块中调用,否则会出错。 === norm函数 === <syntaxhighlight lang="lua"> require('Module:ProcessArgs').norm(origArgs) </syntaxhighlight> * {{cd|origArgs}}:可选(表),用于指定{{cd|args}}表,默认值为父框架<ref group="注" name="frame">通常为{{tcd|#invoke:}}所在页面的框…”)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

此頁面為 Module:ProcessArgs 的說明文件

Template:Documentation header 該模塊將參數添加到一個表中以便模塊使用。

用法

該模塊通常只能在其他模塊中調用,否則會出錯。

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