Template:Tlx/doc
This is a documentation subpage for
Template documentation[edit]
Template sandbox and testcases for TEMPLATE_NAME[edit]Overview[edit]This page provides a clean workflow to safely edit and validate TEMPLATE_NAME:
Use this page to:
Quick links[edit]
How to test[edit]1. Edit the sandbox at Template:TEMPLATE_NAME/sandbox. 2. Open this test page and click “Show preview” to render the sandbox with inputs below. 3. Verify each testcase: Does the “Actual output” match the “Expected output”? 4. If all pass, consider copying sandbox to live using an edit summary like: “Sync from /sandbox: passes all /testcases as of YYYY-MM-DD.” Previewing tips[edit]
Test harness[edit]The following sections render the sandbox template against curated inputs. Each testcase shows:
Testcase A: Minimal invocation[edit]Parameters: {{TEMPLATE_NAME}} Expected output: [Minimal successful output with defaults: e.g., a neutral message or basic box] Actual output (sandbox): Character and language test sandbox This sandbox is used to test how Template:TEMPLATE NAME behaves with special characters (such as Greek letters) and language-specific spans. Basic examples[edit]
Within the template[edit]Below are example calls of the template using these characters as parameters. {{TEMPLATE NAME | title = Greek test: α γ | summary = Demonstrating Greek letters: α, β, γ, and entities like γ. | attr1 = Direct Greek: α β γ δ | attr2 = Entity Greek: α β γ δ | attr3 = German label: <span lang="de">A</span>, English label: A }} Preview the page to check if:
Notes[edit]
Testcase B: Common parameters[edit]Parameters: {{TEMPLATE_NAME | param1 = Alpha | param2 = Beta | flag = yes }} Expected output: [Example: shows "Alpha" and "Beta" in designated slots; flag toggles enhanced styling] Actual output (sandbox): Character and language test sandbox This sandbox is used to test how Template:TEMPLATE NAME behaves with special characters (such as Greek letters) and language-specific spans. Basic examples[edit]
Within the template[edit]Below are example calls of the template using these characters as parameters. {{TEMPLATE NAME | title = Greek test: α γ | summary = Demonstrating Greek letters: α, β, γ, and entities like γ. | attr1 = Direct Greek: α β γ δ | attr2 = Entity Greek: α β γ δ | attr3 = German label: <span lang="de">A</span>, English label: A }} Preview the page to check if:
Notes[edit]
Testcase C: Edge values and escaping[edit]Parameters: {{TEMPLATE_NAME | param1 = [[Linked target|Visible text]] | param2 = {{subst:CURRENTTIMESTAMP}} | raw = <code><span class="x">escaped</span></code> }} Expected output: [Links render correctly; timestamp subst is literal in expected; raw shows escaped markup] Actual output (sandbox): Character and language test sandbox This sandbox is used to test how Template:TEMPLATE NAME behaves with special characters (such as Greek letters) and language-specific spans. Basic examples[edit]
Within the template[edit]Below are example calls of the template using these characters as parameters. {{TEMPLATE NAME | title = Greek test: α γ | summary = Demonstrating Greek letters: α, β, γ, and entities like γ. | attr1 = Direct Greek: α β γ δ | attr2 = Entity Greek: α β γ δ | attr3 = German label: <span lang="de">A</span>, English label: A }} Preview the page to check if:
Notes[edit]
Testcase D: Internationalization (i18n)[edit]Parameters: {{TEMPLATE_NAME | lang = ja | text = こんにちは世界 }} Expected output: [Text displays correctly for non-ASCII; applies lang attribute or rtl/ltr where applicable] Actual output (sandbox): Character and language test sandbox This sandbox is used to test how Template:TEMPLATE NAME behaves with special characters (such as Greek letters) and language-specific spans. Basic examples[edit]
Within the template[edit]Below are example calls of the template using these characters as parameters. {{TEMPLATE NAME | title = Greek test: α γ | summary = Demonstrating Greek letters: α, β, γ, and entities like γ. | attr1 = Direct Greek: α β γ δ | attr2 = Entity Greek: α β γ δ | attr3 = German label: <span lang="de">A</span>, English label: A }} Preview the page to check if:
Notes[edit]
Testcase E: Error handling[edit]Parameters: {{TEMPLATE_NAME | param1 = | required = <!-- intentionally omitted --> }} Expected output: [Shows a gentle error or maintenance category; does not break page layout] Actual output (sandbox): Character and language test sandbox This sandbox is used to test how Template:TEMPLATE NAME behaves with special characters (such as Greek letters) and language-specific spans. Basic examples[edit]
Within the template[edit]Below are example calls of the template using these characters as parameters. {{TEMPLATE NAME | title = Greek test: α γ | summary = Demonstrating Greek letters: α, β, γ, and entities like γ. | attr1 = Direct Greek: α β γ δ | attr2 = Entity Greek: α β γ δ | attr3 = German label: <span lang="de">A</span>, English label: A }} Preview the page to check if:
Notes[edit]
Maintenance[edit]
Categories[edit]Copy-paste skeletons[edit]Below are ready-to-use skeletons for the sandbox and testcases subpages. Skeleton: Template:TEMPLATE_NAME/sandbox[edit]<!-- Sandbox for TEMPLATE_NAME --> <!-- Copy the entire template source here; edit safely. --> {{#if:{{{required|}}} | <!-- normal output --> <div class="tmpl"> <b>{{{param1|}}}</b> · <i>{{{param2|}}}</i> {{#if:{{{flag|}}}|<span class="flag">✓</span>|}} {{#if:{{{raw|}}}|<span class="raw">{{{raw}}}</span>|}} </div> | <!-- error / missing required --> <span class="error">TEMPLATE_NAME: missing required parameter</span> [[Category:Pages with TEMPLATE_NAME errors]] }} Skeleton: Template:TEMPLATE_NAME/testcases[edit]<!-- Testcases for TEMPLATE_NAME; render against /sandbox --> ; Minimal : {{TEMPLATE_NAME/sandbox}} ; Common params : {{TEMPLATE_NAME/sandbox | param1 = Alpha | param2 = Beta | flag = yes }} ; Edge and escaping : {{TEMPLATE_NAME/sandbox | param1 = [[Linked target|Visible text]] | param2 = 20250101T000000Z | raw = <code><span class="x">escaped</span></code> }} ; I18n : {{TEMPLATE_NAME/sandbox | lang = ja | text = こんにちは世界 }} ; Error handling : {{TEMPLATE_NAME/sandbox | required = }} Review checklist[edit]
Template:Terminate sentence ensures a sentence ends with a specified terminator (default: a period). It avoids adding duplicate terminators and can optionally trim trailing spaces. It attempts to ignore trailing closing quotes or brackets when deciding whether a terminator is already present. Usage[edit]Basic: {{Terminate sentence|This is a sentence}}
→ This is a sentence.
Named parameters: {{Terminate sentence
|text=He said "Hello"
|term=.
}}
→ He said "Hello".
Custom terminator: {{Terminate sentence|text=Warning|term=!}}
→ Warning!
Avoid duplicate terminator: {{Terminate sentence|text=Already done.|term=.}}
→ Already done.
Trim trailing spaces: {{Terminate sentence|text=Ends with space |trim=yes}}
→ Ends with space.
Skip processing: {{Terminate sentence|text=No changes here|skip=yes}}
→ No changes here
Append a note: {{Terminate sentence|text=Complete|note=(source: 2025)}}
→ Complete. (source: 2025)
Parameters[edit]
Behavior details[edit]
Examples[edit]
{{Terminate sentence|text=He whispered "hush"|term=.}}
→ He whispered "hush".
{{Terminate sentence|text=Complete (verified)|term=.}}
→ Complete (verified).
{{Terminate sentence|text=Alert|term=!}}
→ Alert!
{{Terminate sentence|text=Wait...|term=.|allowdup=yes}}
→ Wait.... Best practices[edit]
Lua-powered variant (optional)[edit]For more robust detection (including multilingual quotes and punctuation), create -- Module:TerminateUtil
local M = {}
local closing = {
[")"] = true, ["]"] = true, ["}"] = true,
['"'] = true, ["'"] = true, ["”"] = true, ["’"] = true, ["»"] = true, ["›"] = true
}
local function trimRight(s)
return (s:gsub("%s+$",""))
end
function M.lastVisibleChar(args)
local s = args.s or ""
s = trimRight(s)
local i = #s
while i > 0 do
local c = s:sub(i,i)
if closing[c] then
i = i - 1
else
return c
end
end
return ""
end
return M
Then update the template to call: {{#invoke:TerminateUtil|lastVisibleChar|s=text}}
This improves detection for closing quotes and brackets. See also[edit]It may contain usage information, categories and other content that is not part of the original template page. |
Lua error in package.lua at line 80: module 'Module:Transclusion_count/data/T' not found.
Basic use
[edit](Note: In the following examples, ellipses (groups of three dots) indicate where parameters have been omitted.)
- {{tlxTemplate:\sandbox|tlx|Template|first parameter|second parameter|third|…|tenth}} produces: {{tlxTemplate:\sandbox|Template|first parameter|second parameter|third|…|tenth}}
Where parameters might contain one or more equals-signs ("="), replace each equals-sign with Template:Tcpl:
- {{tlxTemplate:\sandbox|tlx|Template|first{{=}}something|second|third{{=}}something|...|tenth}} produces: {{tlxTemplate:\sandbox|Template|first=something|second|third=something|...|tenth}}
For more than ten parameters, possibly also containing equals-signs, use <nowiki>...</nowiki> thus:
- {{tlxTemplate:\sandbox|tlx|Template|<nowiki>''first''|''second''|''third=something''|...|''999th''</nowiki>}} produces: {{tlxTemplate:\sandbox|Template|first|second|third=something|...|999th}}
Purpose and naming
[edit]Mnemonically, "[t]emplate [l]ink e[x]panded" (after Template:Tlpad, "[t]emplate [l]ink").
This template allows an example of calling a template, accompanied by one or more parameters, to be displayed without also causing the template to be called.
Up to ten of the template's parameters (numbered or nowiki-keywords) may be displayed as placeholders, while more than over 10 parameters can be displayed using a coded vertical-bar (as in "|…"). A keyword parameter can be used with equals code = or {{=}} or in nowiki-text: "<nowiki>size=10</nowiki>" or all parameters as a string in "<nowiki>" tags; see Examples at bottom. For more details, see this talk page.
- Exceptions
If the intended template lists numerous parameters, then perhaps this template should really not be used, and just hardcode the usage with <code><nowiki>. For example:
<code>.<nowiki>{{Anytemplate|arg1=23|size=250px|other parameters...}}</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 <pre>...</pre>.
Parameters
[edit]- If the only parameter supplied is Template:Param, i.e. a template's name, Template:Tpad's output is the same as Template:TlpadTemplate:Aside but in a monospaced font:
{{tl|tl}}produces: {{tl}}{{tlx|tl}}produces: {{tlxTemplate:\sandbox|tl}}
- Template:Tpad will also not take nor display additional parameters.
- Named parameters
|subst=
- Setting this parameter to any non-blank value will prefix the string
subst:linked to Help:Substitution. This is useful to indicate when a template should be substituted. For example, {{tlxTemplate:\sandbox|tlx|Welcome|3=subst=Y}} produces: {{tlxTemplate:\sandbox|Welcome|subst=Y}}. This is similar to the action of the {{tlxTemplate:\sandbox|tlxs}} template: {{tlxTemplate:\sandbox|tlxs|Welcome}} produces: Template:Tlxs.
|SISTER=
- For an interwiki link to other sister projects, such as:
|SISTER=M:(Meta),|SISTER=Q:(WikiQuote),|SISTER=S:(WikiSource), etc, facilitating interwiki template documentation and/or discussion.
|LANG=
- For a link to Wikipedias in other languages, such as:
|LANG=de:(German),|LANG=sv:(Swedish), etc, facilitating cross-language template documentation and/or discussion.
Documentation
[edit]Template:Tlpad is a generalization of {{tl}}, {{tlp}} etc, with output that is arguably more legible. This depends on the browser, but narrow gaps between characters such as "Template:Thinsp", "Template:Thinsp", "Template:Thinsp" and links can be hard to read when not monospaced (and hard to click on; for uses like {{!}}, see Template:Tlpad, which makes the click target bigger).
Usage
[edit]{{tlx|Templatename}}{{tlx|Templatename|param}}{{tlx|Templatename|1|2|3|4|5|6|7|8|9|10}}{{tlx|Templatename|1|2|3|4|5|6|7|8|9|10|more}}{{tlx|Templatename|param=value}}
There are up to 10 placeholders for parameters of the specified template.
Examples
[edit]| Code | Result | Remarks |
{{tlx|x0}} | {{tlxTemplate:\sandbox|x0}} | |
{{tlx|Abc}} | {{tlxTemplate:\sandbox|Abc}} | |
{{tlx|ABC}} | {{tlxTemplate:\sandbox|ABC}} | |
{{tlx|AbC}} | {{tlxTemplate:\sandbox|AbC}} | |
{{tlx|x1|one}} | {{tlxTemplate:\sandbox|x1|one}} | |
{{tlx|x2|one|two}} | {{tlxTemplate:\sandbox|x2|one|two}} | |
{{tlx|x3|1|2|3|4|5|6|7|8|9|10}} | {{tlxTemplate:\sandbox|x3|1|2|3|4|5|6|7|8|9|10}} | |
{{tlx|x4|1|2|3|4|5|6|7|8|9|10|11}} | {{tlxTemplate:\sandbox|x4|1|2|3|4|5|6|7|8|9|10|11}} | up to 10 parameters... |
{{tlx|x5|1|2|3|4|5|6|7|8|9|10|11}} | {{tlxTemplate:\sandbox|x5|1|2|3|4|5|6|7|8|9|10|11}} | ...
| for more |
{{tlx|x1|x=u}} | {{tlxTemplate:\sandbox|x1|x=u}} | the straightforward equals-sign won't work... |
{{tlx|x1|x=u}} | {{tlxTemplate:\sandbox|x1|x=u}} | ...but
= is okay |
{{tlx|x1|x{{=}}u}} | {{tlxTemplate:\sandbox|x1|x=u}} | ...and
{{=}} is okay |
{{tlx|x1|<nowiki>x=u</nowiki>}} | {{tlxTemplate:\sandbox|x1|x=u}} | sticky nowiki also okay
|
{{tlx|x2| |two}} | {{tlxTemplate:\sandbox|x2| |two}} | empty won't work... |
{{tlx|x2| |two}} | {{tlxTemplate:\sandbox|x2| |two}} | ...but
  is okay |
{{tlx|x2| |two}} | {{tlxTemplate:\sandbox|x2| |two}} | ...
is also okay |
{{tlx|x2| | {{tlxTemplate:\sandbox|x2||two}} | <nowiki /> handles the space |
{{tlx|x2| | two}} | {{tlxTemplate:\sandbox|x2| | two}} | | is okay |
{{tlx|x2| {{!}} two}} | {{tlxTemplate:\sandbox|x2 | | two}} | {{!}} is dubious
|
{{tlx|x2|2=|3=two}} | {{tlxTemplate:\sandbox|x2|2=|3=two}} | empty really doesn't work |
{{tlx|x2|2=one|two}} | {{tlxTemplate:\sandbox|x2|2=one|two}} | "two" overrides "2=one" |
{{tlx|x2|3=two|2=one}} | {{tlxTemplate:\sandbox|x2|3=two|2=one}} | irregular parameter order is okay
|
- Unlimited parameters as one
<nowiki>...</nowiki>string - {{tlxTemplate:\sandbox|tlx|convert|<nowiki>14|m|ftin|abbr=out|sp=us</nowiki>}}
See also
[edit]- Template:Tlpad, a version of Template:Tpad where the template name is shown in bold.
- Template:Tlpad, a version of Template:Tpad where the template name is shown in bold.
- Template:Tlpad (tlxpl), a version of Template:Tpad with plainer <code> styling.
- Template:Tlpad, a version of Template:Tpad that handles templates whose names include "Template:" and pages outside the Template: namespace that are treated as templates.
- {{para}}, for the presentation of template parameters and values (e.g.
|paraname=val,|another=, etc).