Difference between revisions of "Template:Documentation"

From Second Life Wiki
Jump to navigation Jump to search
(Making documentation pages more complex!)
(Attempt to use the system used by the OpenStreetMap wiki (MediaWiki/Wikipedia use Lua))
Line 1: Line 1:
<includeonly><!--
<div style="clear:both;margin:1em 0;border:1px solid #AAA;background:#CBEEA7;padding:.5em">{{#ifeq:{{{heading|1}}}|{{{heading|}}}<!--**DEFINED BUT EMPTY**-->
   Automatically add {{template sandbox notice}} when on a /sandbox page.
   |<!--**NOTHING**-->
-->{{#ifeq: {{SUBPAGENAME}} | sandbox |
  |<div style="padding-bottom:3px;border-bottom:1px solid #aaa;margin-bottom:1ex">{{#ifeq:{{{content|1}}}|{{{content|}}}<!--**DEFINED BUT EMPTY**-->
<div style="clear:both" />
    |<!--**NOTHING**-->
{{Template sandbox notice|{{{livepage|}}}}}
    |<span class="editsection plainlinks" id="doc_editlinks">{{#ifexist:{{{1|{{Documentation/docname}}}}}
      |<!--**    /doc EXISTS**  -->[[{{fullurl:{{{1|{{Documentation/docname}}}}}|action=edit}} {{int:Edit}}]] [{{purge|purge}}]
      |<!--**/doc DOESN'T EXIST**-->[[{{fullurl:{{{1|{{Documentation/docname}}}}}|action=edit&preload=Template:Documentation/preload}} {{int:Create}}]]
    }}</span>
  }} <span style="{{#if:{{{heading-style|}}}|{{{heading-style|}}}|{{#ifeq:{{NAMESPACE}}|{{ns:template}}|font-weight:bold;font-size:125%|font-size:150%}}}}">{{#if:{{{heading|}}}|{{{heading|}}}|{{#ifeq:{{NAMESPACE}}|{{ns:template}}|[[Image:Template-info.svg|50px|link=]] Template documentation|Documentation}}}}</span></div>
}}<!--
}}<!--
   Start of green doc box.
 
-->{{Documentation/start box2
--><div id="template_doc_page_transcluded" class="dablink plainlinks"><!--
| preload = {{{preload|}}}<!-- Allow custom preloads -->
 
| heading = {{{heading|¬}}}<!-- Empty but defined means no header -->
   -->{{#ifexist:{{{1|{{Documentation/docname}}}}}
| heading-style = {{{heading-style|}}}
  |<!--**/doc EXISTS**-->This [[Template:Documentation|documentation]] is [[w:Wikipedia:Transclusion|transcluded]] from [[{{{1|{{Documentation/docname}}}}}]]. <small style="font-style:small">([{{fullurl:{{{1|{{Documentation/docname}}}}}|action=edit}} {{int:Edit}}] &#124; [{{fullurl:{{{1|{{Documentation/docname}}}}}|action=history}} history])<br />'''''Note to editors:''' Please don't categorize this template by editing it directly. Instead, place the category in its documentation page, in its "includeonly" section.''</small><br /><!--
| content = {{{content|}}}
  -->}}<!--
| docspace = {{documentation/docspace}}<!-- Some namespaces must have the /doc, /sandbox and /testcases in talk space -->
 
| 1 = {{{1|}}}<!-- Other docname, if fed -->
  -->{{#switch:{{SUBPAGENAME}}
| lang = {{{lang|}}}
  |sandbox|testcases=<!--**DO NOT SHOW THESE LINKS ON THE SANDBOX/TESTCASES PAGES**-->
| template page = {{documentation/template page}}<!-- The namespace is added in /start box2 -->
  |#default=
}}<!--
    {{#switch:{{SUBJECTSPACE}}
  Start load the /doc content:
    |{{ns:template}}
  Note: The line break between this comment and the next line is necessary
    |{{ns:user}}=
  so an  "=== Heading ===" at start of doc subpage is correctly interpreted.
      {{#ifexist:{{FULLPAGENAME}}/sandbox
-->
      |This template has a [[{{FULLPAGENAME}}/sandbox|sandbox]] <small style="font-style:normal">([{{fullurl:{{#rel2abs:/sandbox}}|action=edit}} {{int:Edit}}])</small> <!--
{{#switch: {{#if:{{{content|}}}|1|0}}{{#if:{{{1|}}}|1|0}}{{#ifexist:{{{1|}}}|1|0}}{{#ifexist:{{Documentation/docspace}}:{{Documentation/template page}}/doc|1|0}}
        -->{{#ifexist:{{FULLPAGENAME}}/testcases
| 0000 | 0100 | 0010 | 0101 = <!-- currently no content to transclude -->
        |and [[{{FULLPAGENAME}}/testcases|testcases]] <small style="font-style:normal">([{{fullurl:{{#rel2abs:/testcases}}|action=edit}} {{int:Edit}}])</small>}} for editors to experiment.
| 0001 | 0011 = {{ {{Documentation/docspace}}:{{Documentation/template page}}/doc }}
      |{{#ifexist:{{FULLPAGENAME}}/testcases
| 0110 | 0111 = {{ {{{1|}}} }}
        |This template has [[{{FULLPAGENAME}}/testcases|testcases]] <small style="font-style:normal">([{{fullurl:{{#rel2abs:/testcases}}|action=edit}} {{int:Edit}}])</small> for editors to experiment.}}
| 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 = {{{content|}}}
  }}}}}}
}}<!--
</div>
  End load the /doc content:
{{#if:{{{content|}}}
  Note: The line break between this comment and the next line is necessary
| {{{content|}}}
  so an "=== Heading ===" at end of doc subpage is correctly interpreted.
| {{#ifexist:{{{1|{{Documentation/docname}}}}}
-->
  | {{ {{{1|{{Documentation/docname}}}}}<!--
{{Documentation/end box2
    -->|{{#if:{{{p1|}}} | {{{p1|}}}={{{v1|}}} | {{{v1|{{#if:{{{2|}}}|{{{2|}}}|__p1=}}}}} }}<!--
| preload = {{{preload|}}}<!-- Allow custom preloads -->
    -->|{{#if:{{{p2|}}} | {{{p2|}}}={{{v2|}}} | {{{v2|{{#if:{{{3|}}}|{{{3|}}}|__p2=}}}}} }}<!--
| content = {{{content|}}}
    -->|{{#if:{{{p3|}}} | {{{p3|}}}={{{v3|}}} | {{{v3|{{#if:{{{4|}}}|{{{4|}}}|__p3=}}}}} }}<!--
| link box = {{{link box|}}}<!-- So "link box=off" works -->
    -->}}
| docspace = {{Documentation/docspace}}<!-- Some namespaces must have the /doc, /sandbox and /testcases in talk space -->
  }}
| 1 = {{{1|}}}<!-- Other docname, if fed -->
}}
| lang = {{{lang|}}}
<div style="clear:both"></div>
| template page = {{Documentation/template page}}<!-- The namespace is added in /end box2 -->
</div><noinclude>
}}<!--
<!--{{pp-template|small=yes}}-->
  End of green doc box
--></includeonly><noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
</noinclude>

Revision as of 07:57, 13 September 2022

[Edit] [🔄Purge] 50px Template documentation


This template automatically displays a documentation box like you are seeing now, of which the content is transcluded from another page. It is intended for pages which are "Wikipedia logo"transcluded in other pages, i.e. templates, whether in the template namespace or not.

Usage

In-line content without [view][edit] links
  • <noinclude>{{Documentation| content = This is documentation. }}</noinclude>
Normal /doc with [view][edit] links
Any /doc page
Any /doc page with optional parameters
  • <noinclude>{{Documentation|Template:any page/doc|parameter1|parameter2|parameter3}}</noinclude>
  • <noinclude>{{Documentation|Template:any page/doc
    | p1 = paramname1 | v1 = paramvalue1
    | p2 = paramname2 | v2 = paramvalue2
    | p3 = paramname3 | v3 = paramvalue3
    }}</noinclude>
  • <noinclude>{{Documentation|Template:any page/doc| content = {{Template:any page/doc|optional parameters...}} }}</noinclude>

Best practice

This code should be added at the bottom of the template code, with no extra space before <noinclude> (which would cause extra space on pages where the template is used). The parameter can be used as shown above to transclude an arbitrary documentation page.

Categories and interwiki links that apply to the template itself should be added to the documentation page, inside <includeonly>...</includeonly> tags. For more complex cases, see "Wikipedia logo"Template_documentation#Categories_and_interwiki_links.

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

Customizing display

Overrides exist to customize the output in special cases:

  • {{Documentation| heading = ... }} − 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.

Functions

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.

Rationale

Use of this template allows templates to be "Wikipedia logo"protected where necessary, while allowing anyone to edit the documentation, categories, and interwiki links.