該模組將參數加入到一個表中以便模組使用。
用法[]
該模組通常只能在其他模組中調用,否則會出錯。
norm函數[]
require('Module:ProcessArgs').norm(origArgs)
origArgs
:可選(表),用於指定args
表,預設值為父框架[注 1]的args
表。值為其他類型(包括nil
)時取預設值。
該函數會將origArgs
表中所有值的多餘空字元刪去(若表中某個值全部由空字元組成,則將其設定為nil
),並返回修改後的表。
merge函數[]
require('Module:ProcessArgs').merge(origArgs,parentArgs,norm)
origArgs
:可選(表),用於指定args
表,預設值為目前框架[注 2]的args
表。值為其他類型(包括nil
)時先用該值覆蓋norm
的值,然後取預設值。parentArgs
:可選(表),用於指定args
表,當origArgs
不是表時預設值為父框架[注 1]的args
表。值為其他類型(包括nil
)時會出錯。norm
:可選(布林值),用於指定是否將表中全部由空字元組成的值設定為nil
。當origArgs
不是表時取origArgs
的值。
該函數會將origArgs
和parentArgs
這兩個表合併(若兩個表有相同的鍵,則優先取parentArgs
中的值),同時將表中所有值的多餘空字元刪去,並返回合併後的表。
示例[]
假設模組:Example包含以下代碼:
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
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
語言