帮助:模板
本页主要关于设计模板,而不是使用模板。有关如何使用现有模板的详细信息,请参阅 Help:Editing 或任何模板的文档。
包括
要在另一个页面中包含模板---或任何页面---
{{T}}包含 Template:T{{:Page name}}包含 Page name{{subst:T}}或{{subst::Page name}}将被替换为 Template:T 或 Page name 的当前内容{{msgnw:T}}以<nowiki>样式包含 Template:T
If 模板
模板具有有限的条件测试功能。以下内容基于 MediaWiki 手册中的代码
- {{Ifn|value|result}}
- 如果 value 不为空,则产生 result。(比较 shell 的
if [ -n "value" ]; then result; fi) 一个限制:{{ifn|2=result}} 产生 result (但如果 value 已定义且为空,则可以正常工作)。 - {{Ifz|value|result}}
- 如果 value 为空,则产生 result。(比较 shell 的
if [ -z "value" ]; then result; fi) - {{If|value|resultyes|resultno}}
- 如果 value 不为空,则产生 resultyes; 否则产生 resultno。(比较 shell 的
if [ -n "value"]; then resultyes; else resultno; fi) 一个限制:{{if|2=resultyes}} 产生 resultyes (但如果 value 已定义且为空,或者 resultno 已定义,则可以正常工作)。 - {{Ifeq|value|test|resultyes|resultno}}
- 如果 value 等于 test,则产生 resultyes; 否则产生 resultno。(比较 shell 的
if ["value" = test ]; then resultyes; else resultno; fi)
既然我们已经升级到 MediaWiki >= 1.19.1 (目前为 1.26.2),我们*应该*能够使用 {{#if:value|result|resultno}} 和 {{#ifeq:value|test|resultyes|resultno}},它们没有上述限制。这里有更多细节。 但是,似乎在 ParserFunctions 扩展启用之前,这不会工作。
模板参数
在模板的扩展标记中,{{{1}}} 将扩展为第一个 (隐式命名) 参数,{{{2|default}}} 将扩展为第二个参数,但如果未提供第二个参数,则默认为 default。请注意,如果模板以 {{Foo|arg1|}} 形式调用,则第二个参数*已*提供;这里它是空字符串。
参数也可以显式命名/编号,就像您调用 {{Foo|bar=arg1|2=}} 时一样。以这些方式提供的参数会删除前导和尾随空格。(当参数仅隐式命名时,空格会被保留。)
要禁止展开参数的内容,请用 {{#tag:nowiki|...}} 包裹 {{{argument}}};有关示例,请参阅 Template:Cat。
在模板的扩展标记中,以 *、#、: 或 ; 开头的子字符串会自动添加换行符前缀。使用 start{{{dummy|;}}}finish 生成 start;finish。(空字符串可以用于 dummy。)
{{ns:0}} 扩展为空字符串。
如果您的模板参数意外地展开为 {{{1}}},则您忽略了提供参数;或者您提供的文本被 wiki 标记引擎以您不期望的方式解释。您可以通过用 <nowiki> 标签包围相关文本来阻止这种情况发生。例如,代替
{{Cmd|export PS1="(chroot)$PS1"}}
使用
{{Cmd|<nowiki>export PS1="(chroot)$PS1"</nowiki>}}
一个更短的替代方法是显式命名第一个参数
{{Cmd|1=export PS1="(chroot)$PS1}"}}
另请参阅 {{Cat}} 的转义字符,它们可以在任何模板调用中使用。
新模板的骨架
<noinclude>{{Template}}
Short description.
=== Usage ===
Longer description.
<pre>{{Foo|arg}}</pre>
Further comments.
=== Example ===
<pre>{{Foo|arg}}</pre>
will produce:
{{Foo|arg}}
=== See also ===
* [[:Template:Bar]]
</noinclude><includeonly>EXPANSION</includeonly>