Template:Documentation/doc

From The FunKey Wiki

Lua error in Module:TNT at line 158: Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:I18n/Uses TemplateStyles.tab.

__EXPECTED_UNCONNECTED_PAGE__

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

<templatedata> {"description":{"en":"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."},"format":"inline","params":{"1":{"default":"The current template page with the suffix /doc","deprecated":false,"description":{"en":"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 \":\")"},"label":"pagename","required":false,"suggested":false,"type":"string/wiki-page-name"},"content":{"deprecated":false,"description":{"en":"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."},"label":"content","required":false,"suggested":false,"type":"string"},"heading":{"aliases":["2"],"default":"icon and \"Documentation\" text","deprecated":false,"description":{"en":"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."},"label":"heading text","required":false,"suggested":false,"type":"string"}},"sets":[]} </templatedata>

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

⧼Seealso⧽

Localization

English 

This template is localized through {{Autotranslate}}.


To add your language to the list of languages supported by this template, please copy the code of Template:Documentation/i18n/en (or any other language version you prefer to translate) and replace the text strings in there (the form below can be used to create a translation, the English version is preloaded in the edit box). Please change the parameter lang from en (or whatever language you are translating) to the language code of your language.

<inputbox> type=create preload=Template:Documentation/en default=Template:Documentation/LANGCODE </inputbox>

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