| 此模板使用Lua語言: |
該模板通過傳入一個表示數個命名參數的序列化字符串,實現類似JavaScript中展開運算符的功能(該模板的命名也源於這個語法),以便於對模板傳入一組可復用的參數。
{{...
|__tl= <!-- 要使用的模板名 -->
|__args= <!-- 要傳入的序列化參數字符串,不支持匿名(數字)參數 -->
<!-- 可以繼續傳入參數,無論是匿名還是命名,當與args中的參數名重複時,將依據參數序列化時定義的混合模式進行混合 -->
}}
該模板提供了一個用於序列化的方法,注意不支持匿名(數字)參數:
{{.../stringify
|__blendModes= 參數名:混合模式, 參數名:混合模式
|參數名=參數值
|參數名=參數值
}}
其中,__blendModes參數為設置各個參數的混合模式,以使stringify中的參數和模板使用時的參數發生重複時,能更好地工作。該參數不是必須的。
混合模式共有4種類型:
${__arg}的位置。{{...
|__tl= bilibiliVideo
|__args= {{.../stringify|id=7610055}}
}}
這裡將演示一個更加典型的用法。
仔細觀察可以發現,該模板中有多個參數是重複的(實際上大多數樣式簡單navbox模板都是這個模式)。雖然我們可以通過對其再次封裝一次達到只傳一次顏色,但{{navbox}}模板還有相當數量的其他參數,如果不在封裝的模板中寫出將導致無法使用,這裡使用該模板達到參數復用的目的。
{{navbox
|name=來自風平浪靜的明天
|title={{coloredlink|#00AECF|來自風平浪靜的明天}}
|titlestyle = background:white; color:#00AECF;
|abovestyle = background:#00AECF;
|groupstyle = background:#00AECF; color:white;
|oddstyle = background:{{ColorOps|-90|#00AECF}};
|evenstyle = background:white;
|above = <div style="height:2px;"></div>
|group1=主要角色
|list1=先島光 • 向井戶愛花
|group2=其他角色
|list2=鱗大人• 先島燈
}}
| |||||||||||
假設新建模板:navboxPlainStyles:
{{.../stringify
|__blendModes=
titlestyle:middle,
abovestyle:end,
groupstyle:end,
oddstyle:end,
evenstyle:end
|titlestyle = background:white; ${__arg}; color:{{{1}}};
|abovestyle = background:{{{1}}};
|groupstyle = background:{{{1}}}; color:white;
|oddstyle = background:{{ColorOps|-90|{{{1}}}}};
|evenstyle = background:white;
|above = <div style="height:2px;"></div>
|title= {{coloredlink|{{{1}}}|{{{title}}}}}
|name={{{title}}}
}}
使用該模板:
{{...|__tl= navbox
|__args= {{navboxPlainStyles|#00AECF|title=來自風平浪靜的明天}}
|groupstyle = color:orange; <!-- 由於設置了該參數的混合模式為“end”,這裡的樣式被添加到了navboxPlainStyles模板中定義的樣式的後面,覆蓋了其中設置的白色文字顏色 -->
|titlestyle = background:#ccc; color:grange; <!-- 設置的混合模式為“middle”,將${__arg}放在了background和color的中間,導致只有背景顏色被覆蓋 -->
|group1=主要角色
|list1=先島光 • 向井戶愛花
|group2=其他角色
|list2=鱗大人• 先島燈
}}
| |||||||||||