置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

模板:Choose/doc

萌娘百科,萬物皆可萌的百科全書!轉載請標註來源頁面的網頁連結,並聲明引自萌娘百科。內容不可商用。
跳至導覽 跳至搜尋

一個提供類似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}}:foobarbaz

最佳實踐

您可以使用具名正整數鍵名來代替匿名傳參來傳遞選項

如果您想要傳遞的選項比較多,而每一個都有不同的權重,那麼您可以使用具名正整數鍵名來傳遞選項,這樣更方便得知選項的順位。例如:

{{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.91)。
class 字符串 (空) 外部元素的 CSS 類名
style 字符串 (空) 外部元素的樣式
wrapper-tag 字符串 div 外部元素的標籤名
options-class 字符串 (空) 內部選項元素的 CSS 類名
options-tag 字符串 div 內部選項元素的標籤名
tag 字符串 div 快速設置內部及外部元素標籤的語法糖,優先級沒有 wrapper-tag 和 options-tag 高
  1. 1.0 1.1 此處鍵名中的「✟」指代任意正整數