Template:Template link code/doc

From imedwiki
< Template:Template link code
Jump to navigation Jump to search

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 &#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 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|subst=yes braceinside=yes alttext=Foo
2=Foo
normal DEFAULT {{tlg}}[note 1]
{{tl}}
{{tlp|1|2|...}}[note 2]
  1. REDIRECT Template:Template link universal
[note 3]
{{tlf}}[note 2]
<template link>
{{subst:tls}}
  1. REDIRECT Template:Template link universal with subst
[note 3]
{{tlsf}}[note 2]
<template link>
{{tn}} {{tla}}
code code=yes {{tl2}}
{{tlx}}
Template:Tlxu[note 3]
{{tlc}}[note 2]
<template link>
{{tnull}}<template link>
{{subst:tlxs}} {{subst:tlsc}}[note 2]
<template link>
N/A
monospace plaincode=yes[note 4] N/A {{subst:tltss}}[note 5] N/A
kbd kbd=yes[note 5]
bold bold=yes
  1. REDIRECT Template:Template link with bold
N/A
bold+code bold=yes|code=yes {{tlxb}}
italic+code italic=yes|code=yes
  1. REDIRECT Template:Template link expanded with italic
  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 2.3 2.4 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}}
  1. REDIRECT Template:Template link universal
|| Supports linking to any namespace
{{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}}
  1. REDIRECT Template:ParserFunction

  1. REDIRECT Template:ParserFunction
|| Parser function equivalent to {{tl}}
{{magic word|uc:}} {{uc:}} Magic word links

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}} Script error: No such module "Tfd links".
{{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)


This template is based (in parts) on the Template:Template link code/doc from the free encyclopedia wikipedia and is licensed under GNU license for free documentation and the Creative Commons Attribution/Share Alike. On wikipedia there is a List of authors accessible. More about importing from wikipedia on page Imedwiki:Importing from wikipedia.