模板:Infobox3/doc
跳至導覽
跳至搜尋
新特性一:使用
| 可用於生成信息欄,供用戶使用 | 元模塊,不應使用 | |||
|---|---|---|---|---|
| Module:Infobox3|main | $\Longleftarrow$
|
Template:Infobox3 | $\Longleftarrow$
|
Module:Infobox3Base |
| Module:Infobox3|legacy | $\Longleftarrow$
|
Template:Infobox3/legacy | $\Longleftarrow$
|
Module:Infobox3Base/legacy |
表1 Infobox3大家族
| 體驗新版樣式 | 兼容{{信息欄2.0}} | |
|---|---|---|
| 需要接收 前綴參數 |
Module:Infobox3|main | Module:Infobox3|legacy |
沒有上述需求
|
Template:Infobox3 | Template:Infobox3/legacy |
表2 我應該使用哪一個Infobox3?
新特性一:使用 :: 而不是 = 來傳遞自定義參數
在Infobox3里,不能像從前一樣使用 = 傳遞自定義參數。原因有三:
- 運營方出於一些考慮,移除了Variables
- Scribunto不保證傳入非匿名參數的順序
- 萌娘百科長期受益於Variables而形成的慣性
在運營方出於另一些考慮不去修改Scribunto的情況下,萌娘百科編輯User:Liliaceae提出了這樣一種解決方案(註)此方案在{{時間線}}中被首次採用:約定使用 :: 來分割鍵值對。這樣,在視覺上它看似具名參數,但實際上傳入的是匿名參數,鍵值的分割由模塊完成。Infobox3採納了這種方案。
| Lua錯誤:bad argument #1 to 'match' (string expected, got nil)。示例:雙冒號的使用¶ |
|---|
{{Infobox3
|title = Infobox3
|image = MoegirlPedia-Title-green.svg
|size = 150px
|alt = 万物皆可萌,Variables除外
|-横栏1 :: 送杜少府之任蜀州
|_内容 :: 海内存知己,天涯若比邻。
|-横栏2 :: 横栏
|项目1 :: 内容1
|项目2 :: 内容2
|bottom = ヾ(≧▽≦*)o
}}
|
在此示例中,title、image等參數是模板內置的參數,不屬於自定義參數,仍可使用=;而-横栏1等參數名是用戶自定義的,因此需要使用::傳參。
新特性二:前綴參數
考慮這個嵌入鏈條:
| ×××條目 | $\Longleftarrow$
|
Template:×××信息欄 | $\Longleftarrow$
|
(信息欄模板) |
表3 一個典型的嵌入鏈條
為了更加靈活地使用信息欄,一些編者希望能夠向Template:×××信息栏傳入一些以特定前綴開頭的參數(例如相关人物-×××),並讓它們出現在指定位置。在過去,這一功能通過{{#forargs:以一種巧妙的方式實現;在Variables被移除後,Infobox3內置了這一功能。
在Module:Infobox3中,只要傳入形如*[前缀] :: [序号]的參數,就可以接收第[序号]個前綴參數。須注意:用戶在Template:×××信息栏傳參時同樣需要使用::!
特別地,[前缀]可以留空;而如果[序号]是-1,則接收所有相關前綴參數。
Lua錯誤:bad argument #1 to 'match' (string expected, got nil)。示例:接收前三個以相关人物-為前綴的參數¶
|
|---|
×××條目 姓名
企鵝 萌百娘
親密無間的戰友,共同跨越第二次WAF危機。 |
<!-- Template:×××信息栏 里的内容 -->
{{#invoke:Infobox3|main
|姓名 :: {{{姓名|}}}
|*相关人物- :: 1
|*相关人物- :: 2
|*相关人物- :: 3
}}
<!-- ×××条目 里的内容 -->
{{×××信息栏
|姓名 = 企鹅
|相关人物-萌百娘 :: 亲密无间的战友,共同跨越第二次WAF危机。
}}
|