Template:Hidden begin/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. |
Syntax
[edit]{{Hidden begin
| expanded = <!--"true", "on", yes", etc, otherwise omit-->
| showhide = <!--"left", otherwise omit-->
| border =
| style =
| titlestyle =
| title =
| contentstyle =
<!--Older, semi-deprecated parameters:-->
|header= |bg1= |bg2= |ta1= |ta2= |extra1= |extra2=
}}
<!----[content to be hidden placed here]---->
{{Hidden end}}
Parameters
[edit]| Parameter | Description |
|---|---|
| showhide | Set to "left" (without speechmarks) to switch the [show/hide] link's position from the righthand end of the titlebar (default) to the left. |
| expanded | Set to anything ("true", "yes", etc) to switch the hidden section's initial state from collapsed (hidden) to expanded (visible). |
| border | CSS styling for border around entire area. Overridden by style (if used). |
| style | CSS styling affecting entire area (titlebar and hidden/hideable content). Overrides border if used. |
| titlestyle | CSS styles to apply to the titlebar (e.g. |titlestyle=border:1px solid lightgrey; to produce a border around it; |titlestyle=background:color; to set its background color to color ; |titlestyle=text-align:[center/right]; to switch its text (title)'s alignment from left to center or right; etc). |
| title | Text shown in titlebar. |
| contentstyle | CSS styling to apply to the hidden material (e.g. background and text-align, per titlestyle). |
Examples
[edit]Example 1
[edit]{{Hidden begin |title=Default example}}
*def
*ghi
{{Hidden end}}
- def
- ghi
Example 2
[edit]{{Hidden begin
| titlestyle = background:pink;
| title = ''titlestyle'' is "background:pink;"
}}
*def
*ghi
{{Hidden end}}
- def
- ghi
Example 3
[edit]{{Hidden begin
| titlestyle = background:pink; text-align:center;
| title = added "text-align:center;"
}}
*def
*ghi
{{Hidden end}}
- def
- ghi
Example 4
[edit]{{Hidden begin
| titlestyle = background:pink; text-align:right; padding-right:3.0em;
| title = ''title'' on right with 3.0em padding
}}
*change window width and
*watch title alignment
{{Hidden end}}
- change window width and
- watch title alignment
Example 5
[edit]{{Hidden begin |showhide=left
| titlestyle = background:palegreen;
| title = ''showhide'' set to "left"
}}
*def
*ghi
{{Hidden end}}
- def
- ghi
Example 6
[edit]{{Hidden begin |showhide=left
| titlestyle = background:palegreen;
| title = <code style="background:transparent;">showhide=left</code>, hidden content 150% size and in bold (''contentstyle'')
| contentstyle = font-size:150%; font-weight:bold;
}}
*def
*ghi
{{Hidden end}}
showhide=left, hidden content 150% size and in bold (contentstyle)- def
- ghi
Example 7
[edit]{{Hidden begin
| header = [''header'' (deprecated)]
| titlestyle = font-style:italic; padding-right:3.0em;
| title = [''title'' set to this text]
| border = 1px solid grey
| bg1 = palegreen
| bg2 = cyan
| ta1 = left
| ta2 = center
| extra1 = font-size:120%
| extra2 = font-size:150%
}}
*make window narrower and
*title will wrap
{{Hidden end}}
- make window narrower and
- title will wrap
Example 8
[edit]{{Hidden begin
| titlestyle =
| title = title with non-breaking spaces
| border = 1px solid red
| bg1 = cyan
| bg2 = yellow
| ta1 = right
| ta2 = left
| extra1 = font-size:120%; padding-right:2.5em;
| extra2 = font-size:150%; padding-left:3.0em;
}}
*def ... these should have left padding
*ghi
{{Hidden end}}
- def ... these should have left padding
- ghi
See also
[edit]- {{Hidden}}