Help:Templates

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.

What are templates?
Wiki templates provide a means to insert the same content over and over in different (or the same) pages. This saves editors the hassle of duplicating the same text again and again, and also helps ensure consistency.

Templates are generally shown with the format required to use the template (i.e. ). Searching the template name takes you to the template's page, where you can see what it looks like and how it is used.

Detailed instructions on the usage of each template should exist either on the template page, or the template's talk page.

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

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  format.
 * Example: returns
 * 1) 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: returns
 * *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

Common templates
There are many templates in use on SmashWiki, and these are only subset, representing some of the most important and commonly used ones. If you feel that a template belongs on this page, do not hesitate to add it.


 * Category:Templates should list all templates in the wiki, categorized into the various subcategories.
 * The Template namespace always has all templates in the wiki, unsorted.

User organization
todo


 * Just Add it to your user page and then save. The To Do List Template should appear in blank with the options of edit -history - watch - refresh, from the template choose edit and add articles for you to Wikify, expand, merge, crate, etc. in the source code.

Nominate an article for deletion
delete


 * Add this to an article to nominate it for deletion. It will add the article to Category:Candidates for deletion.

Disambiguation articles
disambig


 * If you have several articles that have similar or identical names, you may wish to create a "disambiguation" page at the main article name, with the articles taking an extra phrase in brackets afterwards. For example:
 *  The Prince  <--  disambiguation page, with links to:
 * The Prince (frog)
 * The Prince (human)


 * For more information, see disambiguation on Wikipedia.
 * Using disambig marks an article as a disambiguation page by adding a banner to the article and categorizing it under Category:Disambiguation. Add links to the various articles above the banner.

Stubbing
stub


 * When a page has little or no useful information, then it is likely a stub. This template will include them in Category:Stubs, and is used to list which articles need expanding.

Template category template
templatecategory


 * This should be added to any template-related categories, to list template-specific categorising details (these are different to those of normal pages).

Clear
clr, plus clrl and clrr


 * This template is used to reduce the amount of non-wikicode used on pages, replacing the code . Its use should generally be avoided.
 * You can use clr instead of the HTML tag that clears space below things like images, pictures and tables, so the following stuff doesn't begin until the bottom of the image, picture or table box.
 * You can also use clrl or clrr to clear only left or right floats.

For
name


 * Use at the top of articles as a simple "for x see y" template.

Main article
main article


 * Use at the start of a section to link to the main article on it.

T is for template
template


 * This template allows you to show example template code (with a link to the templates) without using the template itself. It is used extensively on this page.

Welcome
welcome


 * A template to welcome new users with. Should be customized for the wiki.

Wikipedia
wikipedia,


 * Wikipedia-related templates. Use wikipedia for articles taken directly from Wikipedia.

Template creation - things to consider
Any autoconfirmed user can create a template on the Wiki. However, when deciding to make a template, some important things must be considered:


 * Is this template for personal use? Personal use templates should not be in the template namespace. Instead, they should be in user subpages, and can be used with the formatting.
 * Is there already a template that serves this purpose? Always check the list of templates to see if such a template already exists. Duplicate templates will just cause unnecessary confusion.
 * Is this template needed? Consider if this template is really necessary. How often would it be used? Will other users agree with its creation? A good rule of thumb is to create a proposal, per CONSENSUS, to establish that this template is both wanted and needed.

If you are satisfied with these considerations, then feel free to create the template.

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:
 * 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:

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
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:
 * Usage:

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

#switch
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.
 * Usage:

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.