帮助:模板
本页主要关于设计模板,而不是使用模板。有关如何使用现有模板的详细信息,请参阅 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>