FANDOM


Templates allow you to pass parameters. These are used to alter the way the template is displayed, such as including specific text or altering the design.

Note: this page describes manipulating templates in source mode. When inserting templates on pages, the VisualEditor (and visual mode of the classic editor) can allow you to define and insert parameter text without touching wikitext.

Simple parameters

For small templates, using basic parameters without specific names to alter a template will often suffice. These parameters are numbered rather than named, using {{{1}}}, {{{2}}}, {{{3}}}, etc.

Guide

This guide will walk through creating a basic box template with simple parameters:

  • Create a page on your wiki with a basic name (for instance, "Template:Box"):
  • Add the following code to that page:
<div style="background-color: #CDF; border: 1px solid #999; color: black; height: 5em; padding-top: 2em; text-align: center; width: 10em;">
{{{1}}}
</div>
  • Save the page to see that it displays the following content:
{{{1}}}
  • Create an article page on your wiki called Template test
  • Enter the following code on that page to display your template:
{{Box|Example text}}
  • Save the page and note that it displays the following content:
Example text

Understanding what happened

This replacement happened because {{{1}}} tells the wiki to pass the first parameter of the template here. This can be extended with {{{2}}}, {{{3}}}, etc.

The number represents the number of the parameter:

{{box|first parameter|second parameter|third parameter}}

If you wish not to use a certain parameter, you can leave it blank, but the '|' character must still be included. For example:

{{box|first parameter||third parameter}}

Named and default parameters

For more complex templates, it is often better to use named parameters. This allows for more freedom in how templates are created, and also makes templates easier to use as users will know which parameter affects which element.

Guide

This guide will walk through using named parameters to the above "Template:Box" example:

  • Using the same example pages as before, edit "Template:Box" and replace the content with the following code:
<div style="background-color: {{{bgcolor|#CDF}}}; border: 1px solid #999; color: {{{textcolor|black}}}; height: 5em; padding-top: 2em; text-align: center; width: 10em;">
{{{text}}}
</div>
{{{text}}} introduces the concept of a named parameter. {{{bgcolor|#CDF}}} also introduces the concept of a default parameter: if "bgcolor" is not defined, "#CDF" will be used.
  • Edit the page "Template test" and replace it with the following code:
{{box|bgcolor=navy|textcolor=white|text=A navy blue box}}
  • Save your page, and note that it displays the following:
A navy blue box

Understanding what happened

As the parameters have names, you can pass them in any order, so {{box|textcolor=white|text=A navy blue box|bgcolor=navy}} would produce an identical box.

Due to default parameters, if, say, the background color was not defined - as in {{box|textcolor=white|text=A navy blue box}} - you would get:

A navy blue box

Named parameters are frequently written on separate lines or with space between parameter name and "=" sign, to aid readability. Generally, this is done in a big template composing of many parameters. It is not unusual to see them written in this form:

{{box
 |bgcolor   = navy
 |textcolor = white
 |text      = A navy blue box
}}

Default parameter can be left blank if you want an optional parameter not to insert anything on a page.

For example, if you wrote {{{text}}} in a template, but did not include a 'text=' input on the article page, it would show up as "{{{text}}}". However, if you wrote {{{text|}}} in the template, the default is no text, so nothing would show up on the article page.

It is also possible to set another parameter as the default of a parameter, like {{{text|{{{1|}}}}}}. This way, if an editor uses {{box|Example text}}, they will get the same output as {{box|text=Example text}}. This means that a template will default to the |text= parameter, but if it cannot find it, it will use the unnamed parameter instead; if it cannot find that, it will use no text.

See also

Community content is available under CC-BY-SA unless otherwise noted.