模組:ProcessArgs/doc
此頁面為 Module:ProcessArgs 的說明文件
該模塊將參數添加到一個表中以便模塊使用。
用法
該模塊通常只能在其他模塊中調用,否則會出錯。
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
的值。
該函數會將origArgs
和parentArgs
這兩個表合併(若兩個表有相同的鍵,則優先取parentArgs
中的值),同時將表中所有值的多餘空字符刪去,並返回合併後的表。
示例
假設模塊: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| bar |ba z|name= na me }}
頁面Example包含以下代碼:
{{Example| a rg1 |2=arg2|args=abc }}
那麼頁面Example將會顯示:
a rg1 bar nil na me