Template:Template link code/doc
This is a documentation subpage for Template:Template link code. It contains usage information, categories and other content that is not part of the original template page. |
This template is used on many pages and changes may be widely noticed. Test changes in the template's /sandbox or /testcases subpages, or in your own user subpage. Consider discussing changes on the talk page before implementing them. |
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. | ||
name}} | {{name}} |
|||
name|one}} | one}} | |||
name|one|two}} | one|two}} | |||
{{tlc|name|a|b|c|d|e|f|g|h|i|j}} |
a|b|c|d|e|f|g|h|i|j}} | Shows up to eight parameters. The rest are dropped. | ||
name | three|four}} | {{name |
three|four}} | Also shows empty parameters. |
name | three}} | {{name |
three}} | Even shows empty parameters that come in the end. |
name|one=a|two=b}} | {{name}} |
The use of equal signs is a problem, but there is a fix; see next row. | ||
name|one{{=}}a|two{{=}}b}} | one=a|two=b}} | Use {{=}} in place of an equal sign, so that it gets rendered properly.
| ||
name|{{IPA|/tʃ/}}|two}} | name|Template:IPA|two}} | Nested template calls also cause problems ... | ||
{{tlc|name|{{tlf|IPA|/tʃ/}}|two}} |
name|{{IPA|/tʃ/}}|two}} | ... but there are ways to get around this issue, also. | ||
{{tlc|name|{{((}}IPA{{!}}/tʃ/{{))}}|two}} |
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 #
.
See also
General-purpose formatting
Text style ↓ | {{tlg}} options[note 1]to achieve text style |
Link style | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Linked | Unlinked | Linked with subst | Unlinked with subst | Linked including braces | Linked with alternative text | ||||||
{{tlg}} options[note 1]to achieve link style |
N/A | DEFAULT | nolink=yes
|
subst=yes
|
nolink=yes
|
braceinside=yes
|
alttext=Foo 2=Foo
| ||||
normal | DEFAULT | {{tlg}} {{tl}} {{tlp|1|2|...}}
|
{{tlf}} <template link> |
{{subst:tls}}
|
{{tlsf}} <template link> |
{{tn}} | {{tla}} | ||||
code
|
code=yes
|
{{tl2}} {{tlx}} Template:Tlxu |
{{tlc}} <template link> {{tnull}} <template link>
|
{{subst:tlxs}}
|
{{subst:tlsc}} <template link> |
N/A | |||||
monospace | plaincode=yes |
N/A | {{subst:tltss}} |
N/A | |||||||
kbd | kbd=yes | ||||||||||
bold | bold=yes
|
|
N/A | ||||||||
bold+code
|
bold=yes
|
{{tlxb}}
| |||||||||
italic+code
|
italic=yes
|
|
- ↑ 1.0 1.1 1.2
{{tlg}}
is the most general template, allowing any combination of text style and/or link style options. - ↑ 2.0 2.1 2.2 2.3 2.4 Prevents wrapping of text by placing it inside
<span class="nowrap">...</span>
tags. - ↑ 3.0 3.1 3.2 Allows links to templates in any namespace.
- ↑
{{tlg|plaincode=yes}}
uses<code style="border:none; background-color:transparent;">...</code>
. - ↑ 5.0 5.1 Displays monospaced font using
<span style="font-family:monospace;">...</span>
.
Other formatting templates
Code example | Effect | Notes | |||
---|---|---|---|---|---|
{{tl2|Hatnote|lang=fr}}
|
{{hatnote}} |
Supports linking to sister projects (e.g., fr:Hatnote) | |||
{{tlu|User:Ahunt/SSHFS}}
|
| ||||
{{demo|<nowiki>{{Hatnote|lang=fr|Some text}}</nowiki>}}
|
lang=fr|Some text}} |
Shows code and example | |||
{{xpd|Hatnote|Some hatnote text}}
|
Template:P1 | 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}}
|
| ||||
{{magic word|uc:}}
|
{{uc:}} | Magic word links |
With utility links
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}}
|
Script error: No such module "Tfd links". |
{{tetl|Hatnote}}
|
{{Hatnote}} |
{{tsetl|Hatnote}}
|
{{subst:Hatnote}} |
{{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) |