Help:Templates: Difference between revisions

From SmashWiki, the Super Smash Bros. wiki
Jump to navigationJump to search
m (→‎Examples: Woops.)
Line 114: Line 114:
Inclusion tags serve the purpose of dictating what gets included where when transcluding. This is typically used for categories and template documentation. There are 3 tags:
Inclusion tags serve the purpose of dictating what gets included where when transcluding. This is typically used for categories and template documentation. There are 3 tags:
*'''includeonly''' text will appear only in the transclusion, not in the template.
*'''includeonly''' text will appear only in the transclusion, not in the template.
*'''includeonly''' text will not appear in the transclusion, only in the template.
*'''noinclude''' text will not appear in the transclusion, only in the template.
*'''onlyinclude''' is a bit different: only the text wrapped in the onlyinclude tags will be transcluded, nothing else. Does not affect the source template whatsoever.
*'''onlyinclude''' is a bit different: only the text wrapped in the onlyinclude tags will be transcluded, nothing else. Does not affect the source template whatsoever.



Revision as of 14:50, April 20, 2016

An icon used in notice templates. This page is a SmashWiki help page, intended to be a guide to helping users understand SmashWiki and its functionalities. When editing this page, please ensure that your revision reflects consensus. If in doubt, consider discussing changes on the talk page.

Templates are tools used in our articles that serve to both provide consistency and simplify the editing process. They may be used to quickly and easily build tables or infoboxes, or they could be used as link shortcuts. For a list of usable templates, see Category:Templates.

Using templates

To use a template, the following syntax should be used: {{TemplateName}}. This is called "transclusion". For example, to use the template {{example}}, one would insert {{example}} in the place where the template should be included. The result will be the contents of Template:Example:

Correct
The template was successfully included in this page.

Template parameters

Sometimes, a template will have required or optional parameters that need to be specified on the template's use. There are two methods of supplying parameters (which one should be used depends on the template in question):

  1. Supplying parameters in a unnamed list. This is typically done with templates with a low number of parameters, such as {{SSB}}. To do this, simply add a bar ("|") after the template name, followed by the parameter's contents. This is to follow a {{TemplateName|Param1|Param2|Param3...}} format.
    Example: {{SSB|Mario}} returns Mario
  2. Supplying named parameters. This is usually used with templates the supply many parameters, such as {{Head}}. To do this, still add the bar, but instead of inserting the parameter's contents right away, add the parameter name (specified by the template) followed by an equals sign ("="), then the parameter's contents.
    Example: {{Head|Mario|g=SSB|s=16px}} returns Mario (SSB)
    *Note that this example actually uses both parameter methods.

Substitution

Substitution is a different form of transclusion in which the template is "written" directly to the page when used (that is, the text that the template produces actually gets inserted where substituted). If a template is substituted, the page the template is used on will not be added to the template's "What links here" page as it would if a normal transclusion occurred.

  • The most used template that should be substituted is {{Welcome}}

Building templates

Templates can be created by making a page in the template namespace. To do this, simply create Template:TemplateName.

Parameters

Parameters can be included in the template in order to give specific directions to the template. They can be required parameters, or they can be optional and have default values. They can be defined in two ways:

  • Named parameters are usually used in templates that have two or more parameters associated with them. They can be defined as follows:

{{{<name>|<defaultvalue>}}}

  • Unnamed parameters are usually used in templates that have only one parameter or as a main parameter (through with name parameters build off of afterwards). They can be defined as follows:

{{{<numberofappearance>|<defaultvalue>}}}

Examples

Template:Fruit
Template contents Usage Output
Today's fruit is a(n) {{{fruit|apple}}}. {{Fruit}} Today's fruit is a(n) apple.
Today's fruit is a(n) {{{fruit|apple}}}. {{Fruit|fruit=orange}} Today's fruit is a(n) orange.
Today's fruit is a(n) {{{fruit}}}. {{Fruit}} Today's fruit is a(n) {{{fruit}}}.
Today's fruit is a(n) {{{1|apple}}}. {{Fruit}} Today's fruit is a(n) apple.
Today's fruit is a(n) {{{1|apple}}}. It is {{{2|red}}}. {{Fruit|grape|purple}} Today's fruit is a(n) grape. It is purple.
Today's fruit is a(n) {{{1|apple}}}. It is {{{color|red}}}. {{Fruit|grape|color=purple}} Today's fruit is a(n) grape. It is purple.

Conditionals

Conditionals are expressions of satisfaction; they are if-then statements. Basically, a condition is given, and if that condition is satisfied, something happens.

#if

  • Usage:{{#if:<expression>|<ifnotnull>|<ifnull>}}

The most basic conditional test. #if is used to test for content in the first "parameter". If something is there, the second "parameter" gets outputted. If null, the third "parameter" gets outputted. The most common usage for this in templates is to test for null parameters. This is accomplished by wrapping the parameter in the #if conditional and making it's default value null, like so:
{{#if:{{{<parameter>|}}}|<ifnotnull>|<ifnull>}}

Examples
Template:Fruit
Template contents Usage Output
{{#if:Something|It's not null|It's null}} It's not null
{{#if:|It's not null|It's null}} It's null
There is {{#if:{{{1|}}}|fruit|no fruit}}. {{fruit}} There is no fruit.
There is {{#if:{{{1|}}}|fruit|no fruit}}. {{fruit|apple}} There is fruit.
There is{{#if:{{{1|}}}|| no}} fruit. {{fruit}} There is no fruit.

#ifeq

  • Usage:{{#ifeq:<expression1>|<expression2>|<ifequal>|<ifnotequal>}}

Tests two expressions for equality. If the two expressions are equal in value, the third "parameter" is outputted, otherwise, the fourth "parameter" is outputted.

Examples
Template:Fruit
Template contents Usage Output
{{#ifeq:A|A|Equal|Not equal}} Equal
{{#ifeq:A|B|Equal|Not equal}} Not equal
{{{1}}}s and {{{2}}}s {{#ifeq:{{{1}}}|{{{2}}}|are|are not}} the same fruit. {{friut|apple|apple}} apples and apples are the same fruit.
{{{1}}}s and {{{2}}}s {{#ifeq:{{{1}}}|{{{2}}}|are|are not}} the same fruit. {{friut|apple|orange}} apples and oranges are not the same fruit.

#switch

  • Usage:{{#switch:<expression>|<case1> = <result1>|<case2> = <result2> ... |<default>}}

The #switch function is use to test an expression against multiple other expressions at once. For example, if you wanted to see if a parameter equals x, y, or z, and each has a different output, a #switch function should be used. It is also possible to specify two cases for one outcome.

Template:Fruit
Template contents Usage Output
{{#Switch:{{{1}}}|apple = red|orange = orange|grape plum = purple|lime = green|"{{{1}}}" is not a fruit.}} {{Fruit|apple}} red
{{#Switch:{{{1}}}|apple = red|orange = orange|grape plum = purple|lime = green|"{{{1}}}" is not a fruit.}} {{Fruit|grape}} purple
{{#Switch:{{{1}}}|apple = red|orange = orange|grape plum = purple|lime = green|"{{{1}}}" is not a fruit.}} {{Fruit|plum}} purple
{{#Switch:{{{1}}}|apple = red|orange = orange|grape plum = purple|lime = green|"{{{1}}}" is not a fruit.}} {{Fruit|carrot}} "carrot" is not a fruit.

Inclusion tags

Inclusion tags serve the purpose of dictating what gets included where when transcluding. This is typically used for categories and template documentation. There are 3 tags:

  • includeonly text will appear only in the transclusion, not in the template.
  • noinclude text will not appear in the transclusion, only in the template.
  • onlyinclude is a bit different: only the text wrapped in the onlyinclude tags will be transcluded, nothing else. Does not affect the source template whatsoever.

Examples

Template contents Template text Contents when transcluded
This template has <includeonly>stuff</includeonly>. This template has . This template has stuff.
This template has <noinclude>stuff</noinclude>. This template has stuff. This template has .
This template has <onlyinclude>stuff</onlyinclude>. This template has stuff. stuff