模組:ProcessArgs/doc

出自NeuroWiki
跳至導覽 跳至搜尋

此頁面為 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