Help:Template
This page is about designing templates more than using them. For details of how to use existing templates, see Markup syntax or the documentation for any template.
Including
To include a template---or any page---in another page:
{{T}}
includes Template:T{{:Page name}}
includes Page name{{subst:T}}
or{{subst::Page name}}
are instead replaced by the current contents of Template:T or Page name{{msgnw:T}}
includes Template:T in<nowiki>
style
If-templates
Templates have a limited condition-testing functionality. The following were based on code from the MediaWiki manuals:
- {{Ifn|value|result}}
-
Yields result if value isn't blank.
(Compare shell's
if [ -n "value" ]; then result; fi
) One limitation: {{ifn|2=result}} yields result (but works properly if value is defined and empty). - {{Ifz|value|result}}
-
Yields result if value is blank.
(Compare shell's
if [ -z "value" ]; then result; fi
) - {{If|value|resultyes|resultno}}
-
Yields resultyes if value isn't blank; otherwise it yields resultno.
(Compare shell's
if [ -n "value"]; then resultyes; else resultno; fi
) One limitation: {{if|2=resultyes}} yields resultyes (but works properly if value is defined and empty, or resultno is defined). - {{Ifeq|value|test|resultyes|resultno}}
-
Yields resultyes if value equals test; otherwise it yields resultno.
(Compare shell's
if ["value" = test ]; then resultyes; else resultno; fi
)
Template arguments
In the template's expansion markup, {{{1}}}
will expand to the first (implicitly named) argument, and {{{2|default}}}
will expand to the second but default to default if the second argument is not supplied. Note that if the template is invoked as {{Foo|arg1|}}
, then the second argument has been supplied; here it's the empty string.
Arguments can also be explicitly named/numbered, as when you invoke {{Foo|bar=arg1|2=}}
. Arguments supplied in these ways have leading and trailing whitespace trimmed. (Whitespace is preserved when arguments are only implicitly named.)
To suppress expansion of an argument's contents, wrap {{{argument}}}
with {{#tag:nowiki|...}}
; see Template:Cat for an example.
Inside a template's expansion markup, substrings beginning with *
, #
, :
, or ;
are automatically prefixed by a
newline. Use start{{{dummy|;}}}finish
to generate start;finish
. (The empty string may be used for dummy.)
{{ns:0}}
expands to the empty string.
Skeleton for a new template
<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>