Difference between revisions of "Template:Tlc/doc"

From blackwiki
Jump to navigation Jump to search
blackwiki>Funandtrvl
(adjust section header)
blackwiki>Pppery
(Rm obsolete stuff)
Line 1: Line 1:
 
{{Documentation subpage}}
 
{{Documentation subpage}}
{{#switch:{{PAGENAME}}
+
{{high risk}}
  | Tlc = {{high-risk|493724}}
 
  | Tld = {{high-use|107581}}
 
  | #default=
 
}}
 
This page provides documentation for {{tl|tlc}} and {{tl|tld}}.
 
  
 
== Purpose and naming ==
 
== Purpose and naming ==
When a template name with [[brace|brace]]s <nowiki>{{ }}</nowiki> is to be shown in documentation, the braces have to be escaped in some way so it doesn't become an actual call to the template. Instead of using <code>&lt;nowiki&gt;&lt;/nowiki&gt;</code> tags you can write it more simply and concisely by using the {{tlc|tlc}} or {{tlc|tld}} templates.
+
When a template name with [[brace|brace]]s <nowiki>{{ }}</nowiki> is to be shown in documentation, the braces have to be escaped in some way so it doesn't become an actual call to the template. Instead of using <code>&lt;nowiki&gt;&lt;/nowiki&gt;</code> tags you can write it more simply and concisely by using the {{tlc|tlc}} template.
  
These templates work similarly to {{tlc|tl}} and {{tlc|tlx}}, but don't make the template name into a link (template link cleared). When writing documentation you might want to avoid a lot of unnecessary links, since they can decrease readability. So on the first occurrence of a template name use {{tlx|tl}} or {{tlx|tlx}}, and then use {{tlc|tlc}} or {{tlc|tld}} thereafter.
+
These templates work similarly to {{tlc|tl}} and {{tlc|tlx}}, but don't make the template name into a link (template link cleared). When writing documentation you might want to avoid a lot of unnecessary links, since they can decrease readability. So on the first occurrence of a template name use {{tlx|tl}} or {{tlx|tlx}}, and then use {{tlc|tlc}} thereafter.
 
   
 
   
{| class="wikitable"
+
The name was based on {{tlx|tl}} '''t'''emplate '''l'''ink, despite the fact that, unlike the actual {{tlc|tl}} template, these templates don't include an actual link.
|-
 
! Template
 
! style="width:15em;"|[[Wikt:mnemonic|Mnemonic]]
 
! Format differentiation
 
|-
 
| {{tlc|tlc}}
 
| '''T'''emplate '''l'''ink '''c'''ode
 
|rowspan=2 |Uses the <code><nowiki><code>...</code></nowiki></code> tags meant for showing programming code. Essentially the non-linking equivalent of {{tlx|tlx}}.
 
|-
 
| {{tlc|tld}}
 
| '''T'''emplate '''l'''ink '''d'''ialup-host
 
|}
 
 
 
The names were based on {{tlx|tl}} '''t'''emplate '''l'''ink, despite the fact that, unlike the actual {{tlc|tl}} template, these templates don't include an actual link.
 
  
 
===Basic operation===
 
===Basic operation===
Here is how these templates look. Code is to the left; actual rendering to the right:
+
The template looks like this: {{tlc|tlc|name|parameters}} → {{tlc|name|parameters}} Code is to the left; actual rendering to the right:
 
 
: {{tlc|tlc|name|parameters}} → {{tlc|name|parameters}}
 
: {{tlc|tld|name|parameters}} → {{tld|name|parameters}}
 
  
===Use with editprotected templates===
 
Most Wikipedia users and even editors will have little or no need for use (or knowledge) of these templates. You will find them of more use if you are a writer or documenter of templates. However, editors may be pointed here when attempting to deal with edit requests on pages which have been [[Wikipedia:Protection policy|protected]] in some way.
 
 
Pages which have been protected can't be edited by every user, but would-be editors can request specific changes on the corresponding [[WP:Talk page|Discussion page]]. An editor requesting a change to a semi-protected page, for example, would add the {{tl|editsemiprotected}} template, followed by their request, to the Talk page. The {{tlc|editsemiprotected}} template expands to a texty notice which includes the instruction "Replace the {{tlc|editsemiprotected}} template with {{tlc|tlf|editsemiprotected}} when the request has been accepted or rejected." An empowered editor acting on the request would then change the template per this instruction.
 
 
The desired effect is to replace the {{tlc|editsemiprotected}} template (with its big, eye-catching box of information) by the ''name'' of the template, merely showing that the template had been there, and acted upon. The use of the {{tlc|tlf}} template means that the template should appear in a normal, proportional font-face, as in "{{tlf|editsemiprotected}}".
 
  
 
==Documentation==
 
==Documentation==
Line 45: Line 17:
 
===Functional details===
 
===Functional details===
 
* This template takes another ''template-name'' and some associated [[Help:Pipe trick|pipe-tricked]] [[m:Parameter#Parameters|(numbered) parameters]] (or 'pass parameters'), and displays them as an 'example demonstration' of how the ''template-name'' template could be coded, literally. Its primary use is in instruction and documentation.
 
* This template takes another ''template-name'' and some associated [[Help:Pipe trick|pipe-tricked]] [[m:Parameter#Parameters|(numbered) parameters]] (or 'pass parameters'), and displays them as an 'example demonstration' of how the ''template-name'' template could be coded, literally. Its primary use is in instruction and documentation.
*Specifics here??? <!-- Coding details, other parameters (SUBST?), other notes? Cf. [[Template:Tlx]]. -->
+
* It shows a template name and up to eight parameters, including empty parameters.
*Features of {{tlc|tlc}} and {{tlc|tld}}:
+
* It prevents [[line wrap]]s in its output.
** They show a template name and up to eight parameters (tlc) or ten parameters (tld).
 
** They also show empty parameters. (See examples hereafter.)
 
** They prevent [[line wrap]]s in their output.
 
  
 
===Usage===
 
===Usage===
 
{{tlc|Tlc|Template|first_parameter|second|third|...|eighth}} → {{Tlc|Template|first_parameter|second|third|fourth|fifth|sixth|seventh|eighth}}
 
{{tlc|Tlc|Template|first_parameter|second|third|...|eighth}} → {{Tlc|Template|first_parameter|second|third|fourth|fifth|sixth|seventh|eighth}}
 
{{tlc|Tld|Template|first_parameter|second|third|...|tenth}} → {{Tld|Template|first_parameter|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth}}
 
 
 
=== Examples ===
 
=== Examples ===
 
{| class="wikitable" style="background-color: #FFEFD5" <!-- This background color helps keep code spans visible. -->
 
{| class="wikitable" style="background-color: #FFEFD5" <!-- This background color helps keep code spans visible. -->
Line 61: Line 27:
 
|-
 
|-
 
| {{tlc|tlc}} || {{tlc}} || Shows its own syntax.
 
| {{tlc|tlc}} || {{tlc}} || Shows its own syntax.
|- style="background-color: #FFEBCD;"
 
| {{tld|tld}} || {{tld}} ||
 
 
|-
 
|-
 
| {{tlc|tlc|name}} || {{tlc|name}} ||
 
| {{tlc|tlc|name}} || {{tlc|name}} ||
|- style="background-color: #FFEBCD;"
 
| {{tld|tld|name}} || {{tld|name}} ||
 
 
|-
 
|-
 
| {{tlc|tlc|name|one}} || {{tlc|name|one}} ||
 
| {{tlc|tlc|name|one}} || {{tlc|name|one}} ||
 
|- style="background-color: #FFEBCD;"
 
|- style="background-color: #FFEBCD;"
| {{tld|tld|name|one}} || {{tld|name|one}} ||
 
|-
 
 
| {{tlc|tlc|name|one|two}} || {{tlc|name|one|two}} ||
 
| {{tlc|tlc|name|one|two}} || {{tlc|name|one|two}} ||
 
|- style="background-color: #FFEBCD;"
 
|- style="background-color: #FFEBCD;"
| {{tld|tld|name|one|two}} || {{tld|name|one|two}} ||
 
|-
 
 
| <code><nowiki>{{tlc|name|a|b|c|d|e|f|g|h|i|j}}</nowiki></code> || {{tlc|name|a|b|c|d|e|f|g|h|i|j}} || Shows up to eight parameters. The rest are dropped.
 
| <code><nowiki>{{tlc|name|a|b|c|d|e|f|g|h|i|j}}</nowiki></code> || {{tlc|name|a|b|c|d|e|f|g|h|i|j}} || Shows up to eight parameters. The rest are dropped.
 
|- style="background-color: #FFEBCD;"
 
|- style="background-color: #FFEBCD;"
| <code><nowiki>{{tld|name|a|b|c|d|e|f|g|h|i|j|k|l}}</nowiki></code> || {{tld|name|a|b|c|d|e|f|g|h|i|j|k|l}} || Shows up to ten parameters. The rest are replaced by an [[ellipsis]].
 
|-
 
 
| {{tlc|tlc|name|||three|four}} || {{tlc|name|||three|four}} || Also shows empty parameters.
 
| {{tlc|tlc|name|||three|four}} || {{tlc|name|||three|four}} || Also shows empty parameters.
 
|- style="background-color: #FFEBCD;"
 
|- style="background-color: #FFEBCD;"
| {{tld|tld|name|||three|four}} || {{tld|name|||three|four}} ||
 
|-
 
 
| {{tlc|tlc|name|||three||}} || {{tlc|name|||three||}} || Even shows empty parameters that come in the end.
 
| {{tlc|tlc|name|||three||}} || {{tlc|name|||three||}} || Even shows empty parameters that come in the end.
 
|- style="background-color: #FFEBCD;"
 
|- style="background-color: #FFEBCD;"
| {{tld|tld|name|||three||}} || {{tld|name|||three||}} ||
 
|-
 
 
| {{tlc|tlc|name|one{{=}}a|two{{=}}b}} || {{tlc|name|one=a|two=b}} || The use of equal signs is a problem, but there is a fix; see next row.
 
| {{tlc|tlc|name|one{{=}}a|two{{=}}b}} || {{tlc|name|one=a|two=b}} || The use of equal signs is a problem, but there is a fix; see next row.
 
|- style="background-color: #FFEBCD;"
 
|- style="background-color: #FFEBCD;"
| {{tld|tld|name|one{{=}}a|two{{=}}b}} || {{tld|name|one=a|two=b}} ||
 
|-
 
 
| {{tlc|tlc|name|one{{((}}{{=}}{{))}}a|two{{((}}{{=}}{{))}}b}} || {{tlc|name|one{{=}}a|two{{=}}b}} || Use <code><nowiki>{{=}}</nowiki></code> in place of an equal sign, so that it gets rendered properly.
 
| {{tlc|tlc|name|one{{((}}{{=}}{{))}}a|two{{((}}{{=}}{{))}}b}} || {{tlc|name|one{{=}}a|two{{=}}b}} || Use <code><nowiki>{{=}}</nowiki></code> in place of an equal sign, so that it gets rendered properly.
 
|- style="background-color:#FFEBCD"
 
|- style="background-color:#FFEBCD"
| {{tld|tld|name|one{{((}}{{=}}{{))}}a|two{{((}}{{=}}{{))}}b}} || {{tld|name|one{{=}}a|two{{=}}b}} ||
 
|-
 
 
| {{tlc|tlc|name|{{tlf|IPA|/tʃ/}}|two}} || {{tlc|tlc|name|{{IPA|/tʃ/}}|two}} || Nested template calls also cause problems ...
 
| {{tlc|tlc|name|{{tlf|IPA|/tʃ/}}|two}} || {{tlc|tlc|name|{{IPA|/tʃ/}}|two}} || Nested template calls also cause problems ...
 
|-
 
|-
Line 112: Line 60:
 
If a vertical display with parameters on their own lines is desired, this can also be laid out manually in this manner, or more rapidly done with <code><nowiki><pre>...</pre></nowiki></code>.
 
If a vertical display with parameters on their own lines is desired, this can also be laid out manually in this manner, or more rapidly done with <code><nowiki><pre>...</pre></nowiki></code>.
  
Here are the codes to emulate {{tlc|tlc}} and {{tld|tld}} using <code>&lt;nowiki&gt;</code>:
+
Here is the code to emulate {{tlc|tlc}} using <code>&lt;nowiki&gt;</code>:
  
 
{|
 
{|
Line 118: Line 66:
 
|-
 
|-
 
|style="padding-right: 50px;"| <code><nowiki>{{tlc|name|one{{=}}a|two{{=}}b}}</nowiki></code>
 
|style="padding-right: 50px;"| <code><nowiki>{{tlc|name|one{{=}}a|two{{=}}b}}</nowiki></code>
|style="padding-right: 50px;"| <code><nowiki>&lt;code&gt;&lt;nowiki&gt;{{name|one=a|two=b}}&lt;/nowiki&gt;&lt;/code&gt;</nowiki></code>
 
|<code><nowiki>{{name|one=a|two=b}}</nowiki></code>
 
|-
 
|style="padding-right: 50px;"| <code><nowiki>{{tld|name|one{{=}}a|two{{=}}b}}</nowiki></code>
 
 
|style="padding-right: 50px;"| <code><nowiki>&lt;code&gt;&lt;nowiki&gt;{{name|one=a|two=b}}&lt;/nowiki&gt;&lt;/code&gt;</nowiki></code>
 
|style="padding-right: 50px;"| <code><nowiki>&lt;code&gt;&lt;nowiki&gt;{{name|one=a|two=b}}&lt;/nowiki&gt;&lt;/code&gt;</nowiki></code>
 
|<code><nowiki>{{name|one=a|two=b}}</nowiki></code>
 
|<code><nowiki>{{name|one=a|two=b}}</nowiki></code>

Revision as of 02:24, 6 September 2020

Purpose and naming

When a template name with braces {{ }} is to be shown in documentation, the braces have to be escaped in some way so it doesn't become an actual call to the template. Instead of using <nowiki></nowiki> tags you can write it more simply and concisely by using the {{tlc}} template.

These templates work similarly to {{tl}} and {{tlx}}, but don't make the template name into a link (template link cleared). When writing documentation you might want to avoid a lot of unnecessary links, since they can decrease readability. So on the first occurrence of a template name use {{tl}} or {{tlx}}, and then use {{tlc}} thereafter.

The name was based on {{tl}} template link, despite the fact that, unlike the actual {{tl}} template, these templates don't include an actual link.

Basic operation

The template looks like this: {{tlc|name|parameters}}{{name|parameters}} Code is to the left; actual rendering to the right:


Documentation

Functional details

  • This template takes another template-name and some associated pipe-tricked (numbered) parameters (or 'pass parameters'), and displays them as an 'example demonstration' of how the template-name template could be coded, literally. Its primary use is in instruction and documentation.
  • It shows a template name and up to eight parameters, including empty parameters.
  • It prevents line wraps in its output.

Usage

{{Tlc|Template|first_parameter|second|third|...|eighth}}{{Template|first_parameter|second|third|fourth|fifth|sixth|seventh|eighth}}

Examples

Code Result Comment
{{tlc}} {{tlc|...}} Shows its own syntax.
{{tlc|name}} {{name}}
{{tlc|name|one}} {{name|one}}
{{tlc|name|one|two}} {{name|one|two}}
{{tlc|name|a|b|c|d|e|f|g|h|i|j}} {{name|a|b|c|d|e|f|g|h}} Shows up to eight parameters. The rest are dropped.
{{tlc|name|||three|four}} {{name|||three|four}} Also shows empty parameters.
{{tlc|name|||three||}} {{name|||three||}} Even shows empty parameters that come in the end.
{{tlc|name|one=a|two=b}} {{name}} The use of equal signs is a problem, but there is a fix; see next row.
{{tlc|name|one{{=}}a|two{{=}}b}} {{name|one=a|two=b}} Use {{=}} in place of an equal sign, so that it gets rendered properly.
{{tlc|name|{{IPA|/tʃ/}}|two}} {{tlc|name|/tʃ/|two}} Nested template calls also cause problems ...
{{tlc|name|{{tlf|IPA|/tʃ/}}|two}} {{tlc|name|{{IPA|/tʃ/}}|two}} ... but there are ways to get around this issue, also.
{{tlc|name|{{((}}IPA{{!}}/tʃ/{{))}}|two}} {{tlc|name|{{IPA|/tʃ/}}|two}} ... another way to do the same thing, using {{((}}, {{!}} and {{))}} to insert literal {{, | and }}, respectively.

An alternative to using constructs such as {{=}} and {{tlf|...}} to prevent characters from getting interpreted syntactically is to use <code><nowiki>...</nowiki></code>, which will prevent all characters from being interpreted. For example, in place of

{{tlc|name|one{{=}}{{tlf|IPA|/tʃ/}}|two}}

you can use

<code><nowiki>{{name|one={{IPA|/tʃ/}}|two}}</nowiki></code>

Both render as

{{name|one={{IPA|/tʃ/}}|two}}

If a vertical display with parameters on their own lines is desired, this can also be laid out manually in this manner, or more rapidly done with <pre>...</pre>.

Here is the code to emulate {{tlc}} using <nowiki>:

Using templates: Using <nowiki>: Rendered result:
{{tlc|name|one{{=}}a|two{{=}}b}} <code><nowiki>{{name|one=a|two=b}}</nowiki></code> {{name|one=a|two=b}}

Limitations

As documented at Help:Template#Problems and workarounds, template arguments starting with one of the four MediaWiki magic characters : ; * or # are interpreted as if they were at the beginning of a line, and are formatted as HTML lists. To avoid this, references to {{*}} or {{#expr}} must have the first character escaped. You can either use <nowiki /> or an escape like &#35;.

See also

General-purpose formatting

Comparison of template-linking templates according to the styles of generated text and link produced
Text style ↓ {{tlg}} options[note 1]
to achieve text style
Link style
Linked Unlinked Linked with subst Linked including braces Linked with alternative text
{{tlg}} options[note 1]
to achieve link style
N/A DEFAULT nolink=yes subst=yes braceinside=yes alttext=Foo
2=Foo
normal DEFAULT {{tlg}}[note 1]
{{tl}}
{{tlp|1|2|...}}[note 2]
{{Template:tlu}}[note 3]
{{tlf}}[note 2]
<template link>
{{subst:tls}}
{{subst:tlsp|1|2|...}}
{{subst:Template:tlsu}}[note 3]
{{tn}} {{tla}}
code code=yes {{tl2}}
{{tlx}}
{{Template:tlxu}}3[note 3]
{{tlc}}[note 2]
<template link>
{{tnull}}<template link>
{{subst:tlxs}} N/A
monospace plaincode=yes[note 4] N/A {{subst:tltss}}[note 5]
kbd kbd=yes[note 5]
bold bold=yes {{tlb}} N/A
bold+code bold=yes|code=yes {{tlxb}}
italic+code italic=yes|code=yes {{tlxi}}
  1. 1.0 1.1 1.2 {{tlg}} is the most general template, allowing any combination of text style and/or link style options.
  2. 2.0 2.1 2.2 Prevents wrapping of text by placing it inside <span class="nowrap">...</span> tags.
  3. 3.0 3.1 3.2 Allows links to templates in any namespace.
  4. {{tlg|plaincode=yes}} uses <code style="border:none; background-color:transparent;">...</code>.
  5. 5.0 5.1 Displays monospaced font using <span style="font-family:monospace;">...</span>.

Other formatting templates

Templates producing specialised formatting effects for given templates, modules or parameters
Code example Effect Notes
{{tl2|Hatnote|lang=fr}} {{hatnote}} Supports linking to sister projects (e.g., fr:Hatnote)
{{tlu|User:Ahunt/SSHFS}} {{User:Ahunt/SSHFS}} Supports linking to any namespace
{{demo|<nowiki>{{Hatnote|lang=fr|Some text}}</nowiki>}}
{{hatnote|lang=fr|Some text}}

Shows code and example
{{xpd|Hatnote|Some hatnote text}} "{{hatnote|Some hatnote text}}" gives "" [1] Shows code, example and a link to expand the template code
{{tln|Hatnote}} Template:Hatnote Produces a normal link to the template
{{elc|Template:Hatnote}}
{{elc|Template:Hatnote|Hatnote}}
[[Template:Hatnote]]
[[Template:Hatnote|Hatnote]]
Formats wikilink, with optional piped link text and blended suffix
{{ml|Example|hello}} {{#invoke:Example|hello}} Counterpart to {{tl}} for linking to Lua modules
{{mlx|Example|hello}} {{#invoke:Example|hello}} Counterpart to {{tlx}} for linking to Lua modules
{{para|title|<var>book title</var>}} |title=book title Formats template parameters for display, with or without values
{{sclx|LASTING}} [[WP:LASTING]] Takes a shortcut suffix in project namespace and displays it with brackets and the WP: alias in a <code>...</code> tag.
{{tag|ref}}
{{xtag|templatedata}}
<ref>...</ref>
<templatedata>
Formats [X]HTML tags; can add content, choose opening, closing, or self-closing
{{dtl|Ping project}} {{d:Ping project}} Wikidata counterpart to {{tl}}
{{pf|if}}
{{pf|if|{{{1}}}|true|false}}
{{#if}}
{{#if:{{{1}}}|true|false}}
Parser function equivalent to {{tl}}

With utility links

Templates producing utility links for a given template (Hatnote used here as example)
Code example Effect
{{lt|Hatnote}} Template:Hatnote (edit | talk | history | links | watch | logs)
{{lts|Hatnote}} Template:Hatnote(edit talk links history)
{{t links|Hatnote}} Hatnote (edit talk history links # /subpages /doc /doc edit /sbox /sbox diff /test)
{{tfd links|Hatnote}} Template:Hatnote (edit · talk · history · links · transclusions · logs · subpages · delete)
{{tetl|Hatnote}} {{Hatnote}}
links talk edit
{{tsetl|Hatnote}} {{subst:Hatnote}}
 links talk edit
{{ti|Hatnote}} Template:Hatnote (talk⧼dot-separator⧽links⧼dot-separator⧽edit)
{{tic|Hatnote}} Template:Hatnote (talk links edit)
{{tim|Hatnote}} m:Template:Hatnote (backlinks edit)
{{tiw|Hatnote}} Template:Hatnote (backlinks edit)
{{tlt|Hatnote}} {{Hatnote}} (talk)
{{ttl|Hatnote}} {{Hatnote}} (t/l)
{{twlh|Hatnote}} Template:Hatnote (links, talk)