Template:Documentation

Template documentationview · edit · history · purge ]
This documentation is transcluded from Template:Documentation/doc.

This template automatically displays a green documentation box like you are seeing now, and automatically loads the content from a /doc subpage. It can also load the content from other places if instructed to. It is intended for pages which are transcluded in other pages, i.e. templates, whether in the template namespace or not.

Usage

{{Documentation |1= }}

This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template's documentation, and categories. It also reduces server resources by circumventing a technical limitation of templates (see a developer's explanation).

Normally this template is used without any parameters, placed at the bottom of the template or page being documented, within a ‎<noinclude>...‎</noinclude> container:

<!--Last line of your template code--><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage -->
</noinclude>

Then this template automatically loads the content from the /doc subpage of the template it is used on.

This template can also load the content from any other page. Like this:

<!--Last line of your template code--><noinclude>
{{Documentation |Template:Other page/doc}}
</noinclude>

Note that when loading the documentation from a page other than the local /doc page it becomes tricky to handle the categories.

The content can also be fed directly as text. Like this:

<!--Last line of your template code--><noinclude>
{{Documentation
 | content =
(some documentation)
}}</noinclude>

When the |content= parameter is used, the doc box normally does not show the [edit] [purge] links in the top right corner. Note that if the /doc page exists, a link to it is still shown in the link box below the doc box.

Parameter |1= and the |content= parameter can also be combined, like this:

<!--Last line of your template code--><noinclude>
{{Documentation |1=Template:Any page/doc
| content = {{Any page/doc |parameters}}
}}</noinclude>

Then the pagename fed as parameter 1 is used for the [edit] [purge] links and for the /doc link in the link box below the doc box. But the content parameter is used for the content shown in the doc box. The above code means that the content is transcluded as {{Template:Any page/doc|parameters}}. In this example a parameter is also fed to the /doc page being loaded.

If the documentation page contains includeonly or noinclude tags as part of the documentation, replace the "<" with "&lt;".

Template parameters

ParameterDescriptionDefaultStatus
1pagenameTemplate name (if there's no explicit namespace, the page is assumed to be in the "Template:" namespace; to specify a page in the main namespace, prefix it explicitly with ":")The current template page with the suffix /docoptional
heading
2
heading textChange the text of the "documentation" heading. If this is set to blank, the entire heading line (including the first [edit] link) will also disappear. If the documentation page doesn't exist, the "edit" link includes a preload parameter so that clicking it will pre-fill the edit form with the basic documentation page format.icon and "Documentation" textoptional
contentcontentThe content of the documentation can also be fed directly as text, instead of being specified by the name of the page containing it (parameter |1=). This option is mostly useful in a rare case where is a single documentation template is used to document many templates, with very little content change. In such a case, the |content= parameter can be used to call the documentation template with additional parameters, like content = {{Any doc page/doc |parameter1 |parameter2}}. See "Usage" section below for more examples and Category:Multi-template documentation for examples of template documentation pages used for more than one template.emptyoptional
Template data
<templatedata>JSON</templatedata> ./. {{TemplateBox}}
TemplateData

TemplateData is a way to store information about template parameters (the description of those and of the whole template) for both humans and machines. It is used by VisualEditor and possibly other tools like Upload Wizard.


Existing template documentation
At Wikimedia Commons, it is recommended to use {{TemplateBox}} with either ‎useTemplateData=1 or ‎useTemplateData=only on the ‎/doc subpage and transcluding it with {{Documentation}} into the template. ‎<nowiki>-tags can be wrapped around the arguments, if required, to avoid templates being expanded.

Newly created template documentation and imports
Another option, especially for imported templates, or for users with JSON experience, is placing raw ‎<templatedata>-tags into the Wikitext of the template, as described in various Wikipediae.

Discussion
There is an ongoing discussion about that matter. Feel invited to comment if you are experienced in either way, your time permits and if you like to share your opinion or to make a suggestion.


Wikipedia's help about TemplateDataCommons-specific information

This template automatically displays a green documentation box like you are seeing now, and automatically loads the content from a /doc subpage. It can also load the content from other places if instructed to. It is intended for pages which are transcluded in other pages, i.e. templates, whether in the template namespace or not.

Template parameters[Edit template data]

This template prefers inline formatting of parameters.

ParameterDescriptionTypeStatus
pagename1

Template name (if there's no explicit namespace, the page is assumed to be in the "Template:" namespace; to specify a page in the main namespace, prefix it explicitly with ":")

Default
The current template page with the suffix /doc
Page nameoptional
contentcontent

The content of the documentation can also be fed directly as text, instead of being specified by the name of the page containing it (parameter "1="). This option is mostly useful in a rare case where is a single documentation template is used to document many templates, with very little content change. In such a case, the "content=" parameter can be used to call the documentation template with additional parameters, like "content = {{Any doc page/doc |parameter1 |parameter2}}". See "Usage" section below for more examples and "Category:Multi-template documentation" for examples of template documentation pages used for more than one template.

Stringoptional
heading textheading 2

Change the text of the "documentation" heading. If this is set to blank, the entire heading line (including the first [edit] link) will also disappear. If the documentation page doesn't exist, the "edit" link includes a preload parameter so that clicking it will pre-fill the edit form with the basic documentation page format.

Default
icon and "Documentation" text
Stringoptional

Additional information

The template is intended to be used in the following namespaces: the Template namespace

The template is intended to be used by the following user groups: all users

Placement: At the bottom of the page

Example

{{Documentation|
|1={{FULLPAGENAME}}
|content=
== {{LangSwitch|en=Showcase|de=Schaufenster}} ==
{{LangSwitch
|en=common case:
|de=Normal- bzw. Standardfall:
}}
::<pre>{{States of Germany|prefix=|suffix=}}</pre>
::{{States of Germany|prefix=|suffix=}}

{{LangSwitch
|en=optionally with flags:
|de=Optional mit Länderflaggen:
}}
::<pre>{{States of Germany|flags=yes}}</pre>
::{{States of Germany|flags=yes}}

{{LangSwitch
|en=optionally with coats of arms:
|de=Optional mit Länderwappen:
}}
::<pre>{{States of Germany|coats=yes}}</pre>
::{{States of Germany|coats=yes}}

{{LangSwitch
|en=optionally without text (affects accessibility negatively (!)):
|de=Optional ohne Text (beeinträchtigt die Zugänglichkeit für einige Nutzergruppen stark negativ (!)):
}}
::<pre>{{States of Germany|compact=yes|flags=only|flagssize=48px}}</pre>
::{{States of Germany|compact=yes|flags=only|flagssize=48px}}

::<pre>{{States of Germany|compact=yes|coats=only|coatssize=48px}}</pre>
::{{States of Germany|compact=yes|coats=only|coatssize=48px}}
}}

renders as:

Lua error: expandTemplate: template loop detected.

See also

Localization

Bahasa Indonesia  italiano  euskara  magyar  eesti  Latina  Frysk  español  català  Deutsch  galego  Nederlands  English  čeština  français  hrvatski  norsk nynorsk  occitan  한국어  Plattdüütsch  العربية  বাংলা  српски / srpski  मराठी  slovenščina  polski  മലയാളം  中文(简体)  తెలుగు  українська  português do Brasil  မြန်မာဘာသာ  粵語  Türkçe  ไทย  suomi  हिन्दी  فارسی  中文  македонски 

This template makes use of {{Autotranslate}} and the translate extension. The layout of the template can be found under Template:Documentation/layout.

Additionally, this template makes use of Module:TNT and Data:I18n/Documentation.tab.