Wikipedia:Template namespace
- This page not to be confused withTemplate:Namespaces
This page documents an English Wikipediaproject content guideline. Editors should generally follow it, thoughexceptionsmay apply. Substantive edits to this page should reflectconsensus.When in doubt, discuss first onthis guideline's talk page. |
This page in a nutshell:
|
Namespaces | |||
---|---|---|---|
Subject namespaces | Talk namespaces | ||
0 | (Main/Article) | Talk | 1 |
2 | User | User talk | 3 |
4 | Wikipedia | Wikipedia talk | 5 |
6 | File | File talk | 7 |
8 | MediaWiki | MediaWiki talk | 9 |
10 | Template | Template talk | 11 |
12 | Help | Help talk | 13 |
14 | Category | Category talk | 15 |
100 | Portal | Portal talk | 101 |
118 | Draft | Draft talk | 119 |
126 | MOS | MOS talk | 127 |
710 | TimedText | TimedText talk | 711 |
828 | Module | Module talk | 829 |
Former namespaces | |||
108 | Book | Book talk | 109 |
442 | Course | Course talk | 443 |
444 | Institution | Institution talk | 445 |
446 | Education Program | Education Program talk | 447 |
2300 | Gadget | Gadget talk | 2301 |
2302 | Gadget definition | Gadget definition talk | 2303 |
2600 | Topic | 2601 | |
Virtual namespaces | |||
-1 | Special | ||
-2 | Media | ||
Current list |
TheTemplate namespaceon Wikipedia is used to storetemplates,which containWiki markupintended for inclusion on multiple pages, usually viatransclusion.Although the Template namespace is used for storing most templates, it is possible to transclude and substitute from other namespaces,[1]and so some template pages are placed in other namespaces, such as theUser namespace.
Templates help maintain consistent formatting and aid navigation between articles. They often include optional and/or variable elements controlled byparametersto allow for specialized use. Templates are also used to assist in a large variety ofWikipedia maintenancetasks. Each template has a matchingTemplate talk:
page where editors can discuss the design and implementation of the associated template (seeHelp:Using talk pagesfor how to participate in talk page discussions).
A template is transcluded into another page by including a template tag in that page's content. A template tag contains the templatepage namesurrounded by double curly braces, e.g.{{Disambiguation}}
.If the template's page name does not begin with a namespace and colon, it is assumed to be in the Template namespace.
Internal links to template pages may be made by using theTemplate:
prefix, e.g.[[Template:Disambiguation]]
.See§ Linking to templatesfor other ways to link to a template.
Guidelines
- Templates should not normally be used to storearticle text,as this makes it more difficult to edit the content. They should alsonot be used to "collapse" or "hide" contentfrom the reader.
- Templates used in articles are designed to provide information to assist readers, such as navigation aids, formatting, or warnings that content is sub-standard. Templates that provide information only of service to editors should not appear on article pages – use the article's talk page or other non-article namespaces.
- Template function should be clear from thetemplate name,butredirectscan be created to assist everyday use of very popular templates.
- High-risk templatesshould be semi-protected,template protected,or fully protected as appropriate (seeWikipedia:Protection policy). This applies also to any high-use template redirects.
- Templates should be clearlydocumentedas to their usage and scope.
- Templates should not be used to create lists of links to other articles when acategory,list page,or"See also" section listcan perform the same function.
- Templates for short, temporary messages that will be removed quickly (such as on User_talk: pages) or that contain text which is not likely to ever be changed should be invoked withsubstitution(subst:). Typical templates that are intended for long-term use and are likely to require changes should be transcluded for easy future updates.
- Templates that violate the guidelines on this page, have poorly defined function, are redundant, become orphaned or used on only one page, or violate any Wikipedia policies may be nominated for deletion atWikipedia:Templates for discussion.
Linking to templates
Internal links to template pages may be made by using theTemplate:
prefix, e.g.[[Template:Disambiguation]]
.These links go to a page that directly contains a base template, but subpages such as the template'sdocumentationcan be linked directly as well, e.g.[[Template:Disambiguation/doc]]
.
To link to a template using a display format appropriate for templates, useTemplate:Tl(short for "template link" ). For example, to reference the Cleanup template, typing{{tl|Cleanup}}
results in{{Cleanup}}.This does not call the template, but the display clearly indicates that the linked object is a template. You can also add parameters usingTemplate:Tlp;for example,{{tlp|Convert|1|m}}
displays as{{Convert|1|m}}.
Check the template documentation onTemplate:Tlfor other options, such as {{tlb}} (bold),{{tlx}}
(code),{{tlxi|param1|param2}}
(italic parameters), and many more.
Suggested practices
Template names
Template names should be made of one or more words, such as{{Train topics}}
.The first character is not case-sensitive, so{{cleanup}}
and{{Cleanup}}
are the same template. All other characters are case sensitive, so{{cfd}}
and{{cfD}}
are not the same. Template names are easiest to remember if they follow standard English spelling, spacing, and capitalization (also see thenaming conventionsfor articles). Avoid having templates whose names differ only in case, spacing, or punctuation.
For templates with long names,template redirects(often called shortcuts) can be created for ease of typing. For example, instead of typing{{Template link with subst}}
the shortcut{{tls}}
is available.
Sandbox for experiments
If you wish to experiment with templates (and not have your experiments deleted before you are done with them), you may do so in theTemplate sandbox.You may also use the templatesX1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,andX12for experimental purposes. To include a test template, use the form{{X1}}
for template X1,{{X2}}
for template X2, etc.
Existing templates often each have their ownsandbox and test casepages (especially those that use{{Documentation}}). Changes should be thoroughly tested there before being applied to the main template, in order to prevent unintentional damage to many pages.
Readability of the code
For templates that have a large number of parameters, it can be helpful to place each parameter on a separate line and align the equals signs. This helps future editors to more easily read the wikicode. For example, if you wish to create a newinfobox– which may contain dozens of parameters – your code might look like this:
{{Infobox | header1 = Text of header1 | label2 = Text of label2 | data2 = Text of data2 | etc = etc }}
Templates using manyconditional expressionsoften benefit from line spacing, such as the following code used in{{If either}}
{{#if:{{{1|}}}
|{{{then|{{{3|}}}}}}
|{{#if:{{{2|}}}
|{{{then|{{{3|}}}}}}
|{{{else|{{{4|}}}}}}
}}
}}
While not necessary, the demonstrated linebreaks allow for easier parsing of which conditionals relate to which #if statement.
Line breaks
While line breaks in the body of a template code are useful for readability, line breaks at the beginning or end of template code could cause display issues on articles. Care should be taken when coding templates to ensure that there is no unnecessary whitespace. A single line break in an infobox may combine with a line break in an article to cause a paragraph break, or could cause an unwanted template in an inline template. As a general guideline, avoid two line breaks together in your template. These may "add up" with other line breaks in the article and be displayed as unwanted white space. For more information about line breaks as they affect wikitext, seeWikipedia:Line-break handling.
To avoid unnecessary whitespace, ensure that any<noinclude>
tags are placed immediately after the template code. The following code is from{{questions}}and has good line break management.
{{notice|small=yes|If you want to ask a question, please see the[[Wikipedia:Questions]]page for guidance.}}<noinclude>
[[Category:Wikipedia help templates]]
</noinclude>
Substitution
Invoking a template using the form
{{subst:name of template(|parameters |...)}}
(that is, insertingsubst:
immediately after the opening pair of curly brackets)
will make a copy of the template text and place it on the page, where it will be viewable in the source. The template is no longertranscludedand future changes to the template will not change the text. As aguideline,this method should be used for any short, temporary messages which are removed quickly, such as on User_talk: pages. The standard new user{{Welcome}}
message is a good example.
Use subst: also if you need to edit the message after including it on the page. If you don't need to edit it, and would rather the message is automatically updated along with changes made to the template, don't use subst:.
Documentation
Because templates represent a step up in difficulty for the novice editor, documentation should be provided which describes its usage (optional parameters) and scope (where it should be used). There are two different ways to do this:
One option is to use the{{documentation}}template to add a minor description directly onto the template page. As mentioned in§ Line breaks,the first<noinclude>
tag should be placed on the same line as the last character of the actual template. For example:
'''This is a{{{1}}}article.'''<noinclude>
{{documentation|content=
Place this template on any article that requires description. It
takes one parameter, an adjective used to describe the article.
For example,{{article-describe|bad}}produces the text,
'''This is a bad article.'''
}}
</noinclude>
Another alternative is to create a formal/doc subpagefor the documentation (preferred for templates with multiple parameters, etc.). The{{documentation}}template is still called, but all of the displayed text will be transcluded from the template's /doc subpage.
'''This is a{{{1}}}article.'''<noinclude>
{{documentation}}
</noinclude>
Modules
Lua modules are sometimes used instead of templates to store reusable material. Reasons for this include usage of module-specific features such asloopsor stored values, and complex code is often easier to read and maintain in a module. If a module is easily implementable in a template it generally should be, since there are more users with experience editing templates.
If a module is intended to be used in articles or talk pages, a template wrapper should generally be created to simplify usage without directly requiring the#invoke
parser function. Documentation is then mostly located on the template's /doc page, with the module's documentation pointing to the template and/or explaining further technical details that are unnecessary at the primary template documentation.
A template wrapper uses more of thepost-expand include size limitthan calling the module directly, therefore it may be necessary to avoid using one in articles that are near the limit.
History
Historically, an "msg:" prefix had to be added in front of the template name when it was used on a page. For example, {{msg:stub}} was typed instead of {{stub}}. This is no longer necessary.
In Wikipedia's first 35 months, there was no template or transclusion mechanism at all. The pageWikipedia:Boilerplate textwas created in September 2002 to collect frequently used text in various Wikipedia processes. TheMediaWiki namespacewas introduced with MediaWiki 1.2.6 on December 6, 2003, and was used not only for the user interface but also for creating boilerplate text messages to be inserted in articles using the {{msg:...}} syntax. This function was replaced with theTemplate namespaceduring the software upgrade to MediaWiki 1.3 on May 30, 2004. As a function of the "Template namespace initialisation script",all non-system messages were moved to the new namespace. The initialisation script also replaced MediaWiki: references in articles with Template: to bypass the redirects created by the moves.
For a short time,Wikipedia:Articles for deletion(then known asvotes for deletionorVfD) used MediaWiki: messages named in the format "MediaWiki:VfD-articlename".These were moved to the Template: space in June 2004 and were named" Template:VfD-articlename".This usage is deprecated now in favor of subpages.
Around 2005, growing complexity of template functions and the desire to consolidate similar templates led to the creation of extremely complex conditional hacks such asnested templatesandCSS tricks.These undesirable methods led to the development ofm:Extension:ParserFunctions,added in 2006 with MediaWiki 1.7. By 2009, many problems with template readability and complexity still remained (On templates and programming languages). In 2013, in order to address page load times, mostly due to slow template renders,Luawas enabled, creating a Module: namespace for programmers to make use of (New Lua templates bring faster, more flexible pages to your wiki).
Searching for templates
Use this form to search in the Template: or Template_talk: namespaces. SeeHelp:Searchingfor more information.
Pages which contain information on commonly used templates:
- Wikipedia:Template indexfor an index of text-based templates.
- Wikipedia:Navigation templatesfor a partial list of various subject-class navigational elements.
- Wikipedia:List of infoboxesfor infoboxes, which are small panels that summarize key features of the page's subject.
- Wikipedia:Categorizationfor templates used forcategories
- Wikipedia:Citation templatesfor templates used to format articlereferences and citations
If you're unable to find an existing template for your situation, but don't feel comfortable creating one yourself, you can ask for help atWikipedia:Requested templates.
See also
- Help:Templatefor information on developing templates and syntax details
- Help:Magic wordsfor all template modifiers
- Help:Conditional tables
- Wikipedia:Template standardisation
Notes
- ^Namespaces from which transclusion is not allowed are specified on a wiki by the variable$wgNonincludableNamespaces