Help:Template: Difference between revisions
Dubiousjim (talk | contribs) (Cancelled REDIRECT, added content) |
Dubiousjim (talk | contribs) (Expand/reorganize) |
||
Line 1: | Line 1: | ||
This page is | This page is about designing templates more than using them. For details of how to use existing templates, see [[Project:Markup syntax|Markup syntax]] or the documentation for [[Special:AllPages/Template:|any template]]. | ||
== Including == | |||
To include a template---or any page---in another page: | To include a template---or any page---in another page: | ||
* <code>{{lb}}T{{rb}}</code> includes [[Template:T]] | * <code>{{lb}}T{{rb}}</code> includes [[Template:T]] | ||
* <code>{{lb}}:Page name{{rb}}</code> includes [[Page name]] | * <code>{{lb}}<b>:</b>Page name{{rb}}</code> includes [[Page name]] | ||
* <code>{{lb}}subst:T{{rb}}</code> or <code>{{lb}}subst::Page name{{rb}}</code> are instead replaced by the current contents of [[Template:T]] or [[Page name]] | * <code>{{lb}}subst:T{{rb}}</code> or <code>{{lb}}subst<b>::</b>Page name{{rb}}</code> are instead replaced by the current contents of [[Template:T]] or [[Page name]] | ||
* <code>{{lb}}msgnw:T{{rb}}</code> includes [[Template:T] in <code><nowiki></code> style | * <code>{{lb}}msgnw:T{{rb}}</code> includes [[Template:T]] in <code><nowiki></code> style | ||
== If-templates == | |||
Templates have a limited condition-testing functionality. The following were based on code from the MediaWiki manuals: | Templates have a limited condition-testing functionality. The following were based on code from the MediaWiki manuals: | ||
<dl> | |||
<dt>{{lb}}Ifn|<var>value</var>|<var>result</var>{{rb}} | |||
<dd> | |||
Yields <var>result</var> if <var>value</var> isn't blank. | |||
(Compare shell's <code>if [ -n "value" ]; then result; fi</code>) | |||
One limitation: {{lb}}ifn|2=<var>result</var>{{rb}} yields <var>result</var> (but works properly if <var>value</var> is defined and empty). | |||
<dt>{{lb}}Ifz|<var>value</var>|<var>result</var>{{rb}} | |||
< | <dd> | ||
Yields <var>result</var> if <var>value</var> is blank. | |||
(Compare shell's <code>if [ -z "value" ]; then result; fi</code>) | |||
< | <dt>{{lb}}If|<var>value</var>|<var>resultyes</var>|<var>resultno</var>{{rb}} | ||
<dd> | |||
Yields <var>resultyes</var> if <var>value</var> isn't blank; otherwise it yields <var>resultno</var>. | |||
(Compare shell's <code>if [ -n "value"]; then resultyes; else resultno; fi</code>) | |||
One limitation: {{lb}}if|2=<var>resultyes</var>{{rb}} yields <var>resultyes</var> (but works properly if <var>value</var> is defined and empty, or <var>resultno</var> is defined). | |||
< | <dt>{{lb}}Ifeq|<var>value</var>|<var>test</var>|<var>resultyes</var>|<var>resultno</var>{{rb}} | ||
<dd> | |||
Yields <var>resultyes</var> if <var>value</var> equals <var>test</var>; otherwise it yields <var>resultno</var>. | |||
(Compare shell's <code>if ["value" = test ]; then resultyes; else resultno; fi</code>) | |||
</dl> | |||
== Template arguments == | |||
In the template's expansion markup, <code><nowiki>{{{</nowiki>1}}}</code> will expand to the first (implicitly named) argument, and <code><nowiki>{{{</nowiki>2|<var>default</var>}}}</code> will expand to the second but default to <var>default</var> if the second argument is not supplied. Note that if the template is invoked as <code>{{lb}}Foo|arg1|{{rb}}</code>, then the second argument ''has'' been supplied; here it's the empty string. | |||
Skeleton for a new template | Arguments can also be explicitly named/numbered, as when you invoke <code>{{lb}}Foo|bar=arg1|2={{rb}}</code>. 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 <code>{{{<var>argument</var>}}}</code> with <code>{{lb}}#tag:nowiki|...{{rb}}</code>; see [[Template:Cat]] for an example. | |||
Inside a template's expansion markup, substrings beginning with <code>*</code>, <code>#</code>, <code>:</code>, or <code>;</code> are automatically prefixed by a | |||
newline. Use <code>start<nowiki>{{{</nowiki><var>dummy</var>|<b>;</b>}}}finish</code> to generate <code>start<b>;</b>finish</code>. (The empty string may be used for <var>dummy</var>.) | |||
<code>{{lb}}ns:0{{rb}}</code> expands to the empty string. | |||
== Skeleton for a new template == | |||
<pre><noinclude>{{Template}} | <pre><noinclude>{{Template}} | ||
Line 58: | Line 81: | ||
</pre> | </pre> | ||
[[Category:Wiki]] | [[Category:Wiki]] |
Revision as of 11:20, 24 March 2012
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>