模組:TemplateParameters/doc
外观
这是Module:TemplateParameters的文档页面
本模組可以將參數填入以普通模板參數定義的格式化字符串
用法
getFormatingStringByArgument
功能:直接將參數透過簡單文字替換填入形如{{{X}}}
的位置內
{{#invoke:TemplateParameters | getFormatingStringByArgument | 在{{{學科}}}中,{{{名稱}}}是一種{{{種類}}} | 學科=數學 | 名稱=三角形 | 種類=多邊形}}
- 顯示為「在數學中,三角形是一種多邊形」
- 用途
- Module:Number中,客製化的性質輸出格式。
- Module:PeriodicTable中,選擇要在元素週期表輸出的元素性質。
FormatingArguments
功能:將未知數量的參數根據{{{X}}}
規則依序填入給定的字符串中。
- 模板中輸入
{{#invoke:TemplateParameters|FormatingArguments|格式=這是第{\{\{1}\}\}個參數;|count=1|usingConditionalExpressions=yes}}
- 叫用模板
{{<模板名稱>|一|二|三|四}}
- 顯示為:「這是第一個參數;這是第二個參數;這是第三個參數;這是第四個參數;」
- 解釋:
- 模板中「格式」參數原本為
這是第{{{1}}}個參數;
,透過加入跳脫字元防止先被解析後,透過FormatingArguments函數將傳入模組讀所有參數依序填入,不必透過大量的{{#if:{{{N}}}
就能達成不定數量的參數傳遞。
- 模板中「格式」參數原本為
- 模板中輸入
{{#invoke:TemplateParameters|FormatingArguments|格式=*:[[畢氏三元數]]:{\{#tag:math{{!}}\\left({\{\{1}\}\},{\{\{2}\}\} ,{\{\{3}\}\}\\right)}\}\n|count=3|usingConditionalExpressions=yes}}
- 叫用模板
{{<模板名稱>|3|4|5|5|12|13|7|24|25}}
- 顯示為:
- 解釋:
- 模板中「格式」參數原本為
*:[[畢氏三元數]]:{{#tag:math|\left({{{1}}},{{{2}}} ,{{{3}}}\right)}}\n
。- 指定了數量為3(
| count=3
)後,會將參數每三個一組代入{{{1}}}
、{{{2}}}
和{{{3}}}
。
- 指定了數量為3(
- 模板中「格式」參數原本為
- 支援的參數
下面為FormatingArguments支援的參數,若有同名參數可能會影響運作
- 讀取不定參數:
{{{1}}}
、{{{2}}}
、{{{3}}}
...即以組為單位讀取不定參數。- 例如
{{|1|2|3|4|5|6|7|8|9}}
如果設定為每組3個參數,- 則第一組的
{{{1}}}
、{{{2}}}
、{{{3}}}
分別會代入1、2和3; - 第二組的
{{{1}}}
、{{{2}}}
、{{{3}}}
分別會代入4、5和6
- 則第一組的
- 以此類推。
- 例如
{{{count+1}}}
、{{{count+2}}}
、{{{count+3}}}
...讀取下一組的不定參數。- 例如
{{|1|2|3|4|5|6|7|8|9}}
如果設定為每組3個參數,此時{{{count+1}}}
即為{{{4}}}
- 則第一組的
{{{4}}}
、{{{5}}}
、{{{6}}}
分別會代入4、5和6; - 則第二組的
{{{4}}}
、{{{5}}}
、{{{6}}}
分別會代入7、8和9; - 則第三組的
{{{4}}}
、{{{5}}}
、{{{6}}}
因為沒有第四組,而會變成空值、預設參數或保持原樣(即{{{4}}}
);
- 則第一組的
- 例如
{{{0}}}
、{{{-1}}}
、{{{-2}}}
...讀取前一組的不定參數。- 例如
{{|1|2|3|4|5|6|7|8|9}}
如果設定為每組3個參數- 則第一組的
{{{0}}}
、{{{-1}}}
、{{{-2}}}
因為第一組沒有錢一組,而會變成空值、預設參數或保持原樣(即{{{0}}}
); - 則第二組的
{{{0}}}
、{{{-1}}}
、{{{-2}}}
分別會代入3、2和1; - 則第三組的
{{{0}}}
、{{{-1}}}
、{{{-2}}}
分別會代入6、5和4;
- 則第一組的
- 以此類推。
- 例如
{{{random}}}
:位於本組的隨機參數。{{{allRandom}}}
:所有參數的隨機參數。
- 判斷用參數
{{{isFirst}}}
:如果這是第一組參數則為1
,否則為空值。
{{{isLast}}}
:如果這是最後一組參數則為1
,否則為空值。
{{{count}}}
:參數組的數量。
containsNumber
功能:用於確定一個參數內是否有包含阿拉伯數字
{{#invoke:TemplateParameters|containsNumber|hijk42lm}}
→「1」{{#invoke:TemplateParameters|containsNumber|hijklm}}
→「」
用法
{{#if:{{#invoke:TemplateParameters|containsNumber|hijk42lm}}|有數字|沒數字}}
→「有數字」{{#if:{{#invoke:TemplateParameters|containsNumber|hijklm}}|有數字|沒數字}}
→「沒數字」
getNumberValue
功能:嘗試從一個參數內讀出一個阿拉伯數字,若讀不出來,則傳回0
{{#invoke:TemplateParameters|getNumberValue|hijk42lm}}
→「42」{{#invoke:TemplateParameters|getNumberValue|hijklm}}
→「0」
用法
{{#expr: hijk42lm }}
→「表达式错误:无法识别词语“hijk”。」{{#expr:{{#invoke:TemplateParameters|getNumberValue|hijk42lm}} }}
→「42」{{#expr:hijklm }}
→「表达式错误:无法识别词语“hijklm”。」{{#expr:{{#invoke:TemplateParameters|getNumberValue|hijklm}} }}
→「0」
arg_to_spstr與pass_spstr
功能:arg_to_spstr會將參數轉變成一個可供pass_spstr使用的字串;pass_spstr可以將arg_to_spstr給出的參數套入模板語法
- 設計動機:批次大量傳送參數的方案
{{#invoke:TemplateParameters|pass_spstr | code = {{{1}}}{{2}}{{{3}}} | args = {{#invoke:TemplateParameters|arg_to_spstr|A|B|C}} }}
- 顯示為「A-B-C」
argTrim
功能:適用於本系列模板的trim方案,{{trim}}會導致使用「{{!}}」的後方內容被捨棄
- 一般Trim
- 模板內容
{{#invoke:TemplateParameters|FormatingArguments|格式={\{Trim{{!}}{{{1}}} }\}|count=1|usingConditionalExpressions=yes}}
- 叫用模板
{{<模板名稱>|一{{!}}遺失的內容}}
- 顯示為:「一」
- 模板內容
- 使用argTrim
- 模板內容
{{#invoke:TemplateParameters|FormatingArguments|格式={\{#invoke:TemplateParameters{{!}}argTrim{{!}}{{{1}}} }\}|count=1|usingConditionalExpressions=yes}}
- 叫用模板
{{<模板名稱>|一{{!}}遺失的內容}}
- 顯示為:「遺失的內容」
- 模板內容
listArguments
功能:列出模板接收到的參數
用途:偵錯用
- 輸入
{{#invoke:TemplateParameters|listArguments|A|B|C|99=D|E=F}}
- 顯示為:
- {{#invoke:}}呼叫參數:
- 1 : A
- 2 : B
- 3 : C
- 99 : D
- E : F
用途
- Module:Number中,客製化的性質輸出格式。
- Module:PeriodicTable中,選擇要在元素週期表輸出的元素性質。