Template:Template link code/doc
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.
This template works similarly to {{tl}} and {{tlx}}, but doesn'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 (code is to the left; actual rendering to the right): {{tlc|name|parameters}}
→ {{name|parameters}}
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}} |
Lua error in Module:Template_link_general at line 119: attempt to concatenate local 'titlePart' (a nil value). | 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|i|j}} |
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|oneTemplate:((=Template:))a|twoTemplate:((=Template:))b}} |
{{name|one=a|two=b}} |
Use {{=}} in place of an equal sign, so that it gets rendered properly.
|
{{tlc|name|Template:Tlf|two}} |
{{tlc|name|Template:IPA|two}} |
Nested template calls also cause problems ... |
{{tlc|name|{{tlf|IPA|/tʃ/}}|two}} |
{{tlc|name|Template:Tlf|two}} |
... but there are ways to get around this issue, also. |
{{tlc|name|{{((}}IPA{{!}}/tʃ/{{))}}|two}} |
{{tlc|name|Template:Tlf|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, 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 #
.
See also
Template:Template-linking templates