模板:Choose
跳至導覽
跳至搜尋
一個提供類似RandomSelection功能的隨機顯示模板,可以在每次頁面刷新時隨機顯示一段內容。
基礎用法
您可以像使用{{#choose}}
一樣使用本模板。
- 代碼
{{Choose|foo|bar|baz}}
- 效果
foo
bar
baz
選擇多個
您可以使用| count = [正整数]
來規定隨機挑選的個數。這個數應大於0且小於選項總數。
- 代碼
{{Choose|count=2|foo|bar|baz}}
- 效果
foo
bar
baz
權重選擇
您可以使用| weight-✟ = [正整数]
來規定選項「✟」出現的權重。這個數應該是正整數。
- 代碼
{{Choose|weight-3=999|foo|bar|baz}}
- 效果(「baz」出現的概率遠高於其他)
foo
bar
baz
規定標籤
您可以使用| wrapper-tag = 标签名
以及| options-tag = 标签名
選項分別規定外部和內部元素的標籤。這在需要行內元素的場合很有用。
例如:
你真是一个{{Choose|wrapper-tag=span|options-tag=strong|机智的|愚蠢的}}人。
- 效果
你真是一個機智的愚蠢的人。
當然,如果內部與外部要使用同一種的標籤,您只需簡單的指定| tag = 标签名
,這在您只是打算把內外均設置為 span 來讓元素在行內顯示時非常有用。在下一個小節中就用到了這種方法。
複雜案例
選項的內容物可以是任何東西,甚至可以嵌套另一個{{Choose}}。
- 代碼
{{Choose | 1 = '''粗体''' ''斜体'' <del>删除</del> <code>短代码</code> {{Color|red|红色}} * 一个 * 无序 * 列表 : 另一个{{Tl|Choose}}:{{Choose|tag=span|foo|bar|baz}} }}
- 效果
最佳實踐
- 您可以使用具名正整數鍵名來代替匿名傳參來傳遞選項
如果您想要傳遞的選項比較多,而每一個都有不同的權重,那麼您可以使用具名正整數鍵名來傳遞選項,這樣更方便得知選項的順位。例如:
{{Choose | 1 = 选项1 | weight-1 = 114514 | 2 = 选项2 | weight-2 = 1919810 | 3 = 选项3 | weight-3 = 10492 }}
這麼做還有另一個好處就是可以防止選項的內容物里存在「=」。
- 不要拼接 wikitext
形如下面這種寫法是無法正常解析的:
[[File:{{Choose|Foo|Bar}}.png]]
你可以採用如下寫法:
{{Choose| [[File:Foo.png]] | [[File:Bar.png]] }}
這是由於本模板事實上是使用 JavaScript 來實現的,而不是使用 MediaWiki 原生解析器。
- 不要嘗試使用本模板來實現隨機背景圖
形如下面這種寫法是無法正常解析的:
{{Choose | {{背景图片|Foo.png}} | {{背景图片|Bar.png}} }}
本模板在設計之初就不打算實現隨機背景圖片的功能。
這是由於傳遞給本模板的全部選項事實上都存在於解析後的 HTML 中,你只是看不見未被挑選到的元素,因此可能導致一些不能重複使用的模板出現錯誤。
全部參數
參數 | 必填 | 類型 | 默認值 | 說明 |
---|---|---|---|---|
✟ [1] |
是 | 任意 | (無) | 任意鍵名為數字的參數(以及匿名參數)都被認為是此隨機挑選的可選項(與<option> 語義一致)。
|
count |
否 | 正整數 | 1 |
隨機挑選的個數。大於0且小於選項總數。 |
weight-✟ [1] |
否 | 正整數 | 1 |
選項✟ 的權重。必須是正整數,小於0的傳參將被認為是0,小數點後的內容將被拋棄(1.9 → 1 )。
|
class |
否 | 字符串 | (空) |
外部元素的 CSS 類名 |
style |
否 | 字符串 | (空) |
外部元素的樣式 |
wrapper-tag |
否 | 字符串 | div |
外部元素的標籤名 |
options-class |
否 | 字符串 | (空) |
內部選項元素的 CSS 類名 |
options-tag |
否 | 字符串 | div |
內部選項元素的標籤名 |
tag |
否 | 字符串 | div |
快速設置內部及外部元素標籤的語法糖,優先級沒有 wrapper-tag 和 options-tag 高 |