2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Template:Choose

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Template-info.svg 模板文档  [查看] [编辑] [历史] [刷新]

一个提供类似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 此处键名中的“✟”指代任意正整数