Help:Template: Difference between revisions
Dubiousjim (talk | contribs) (Expand/reorganize) |
Dubiousjim (talk | contribs) (change to Help:Editing) |
||
| Line 1: | Line 1: | ||
This page is about designing templates more than using them. For details of how to use existing templates, see [[ | This page is about designing templates more than using them. For details of how to use existing templates, see [[Help:Editing]] or the documentation for [[Special:AllPages/Template:|any template]]. | ||
Revision as of 12:15, 24 March 2012
This page is about designing templates more than using them. For details of how to use existing templates, see Help:Editing 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>