Template:Header/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. |
This template can be preloaded via the Gadgets, alternatively, one can preload Template:Header/preload
{{header
| title =
| author =
| translator =
| section =
| previous =
| next =
| year =
| notes =
}}
This template is meant to be used at the top of a work, and its subsections. Fill in any relevant information, and leave unknown or inapplicable parameters empty. Don't remove unused parameters, as this will break the template and make bot maintenance difficult. For easy use, see also the header preloading script gadget in your preferences.
Documentation
[edit]Parameters
[edit]|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} = title of the work, for subpage use relative links
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} = name of author, not wikilinked
- where control of linking is required add
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}; see No link to author page
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} = name of translator, not wikilinked; or
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} see Translations
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} = name of subdivision of work, usually used on subpages
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} = name of previous part of work; relative links on subpages, full links otherwise
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} = name of next part of work, relative links on subpages, full links otherwise
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} = year of publication, adds work to the category for the year, see Category:Works by year
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} = notes to explain the work, or use of {{edition}} to refer to further information on the work's talk page.
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
{{header
| title =
| author =
| translator =
| section =
| previous =
| next =
| year =
| portal =
| wikipedia =
| commons =
| commonscat =
| wikiquote =
| wikinews =
| wiktionary =
| wikibooks =
| wikiversity=
| wikispecies=
| meta =
| notes =
}}
Relative links
[edit]With lengthy, multi-page works, using relative links is highly recommended. This shortens the code and ensures that a work remains linked together even if it is moved or reorganised. The three formats are [[/subpage]] (subpage), [[../]] (parent), and [[../sibling]] (sibling); see the example usage below. Note that [[../]] will expand to the title of the parent page, which is ideal if the work is renamed at a later time.
This depends on a page conforming to the page title standards in the Style guide, with works in the form [[Work title]] and [[Work title/Subpage]].
Chapter titles
[edit]In general, include chapter titles in the "section" field, but avoid including them in the "previous" and "next" fields. For example:
Special cases
[edit]Translations
[edit]|translator=Joe
The name of the translator. This will automatically be linked to an author page unless it contains the "[" character.
(A value of "?" or "unknown" adds {{No translator info}} to the page.)
(A value of "not mentioned" adds translator not mentioned to the page.)
No link to author page
[edit]| author= |override_author=Joe
Displays the author's name without a link to an author page (for works that don't have traditional authors).
Usage examples
[edit]Normal
[edit]{{header
| title = [[../]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[../Chapter 2|Chapter 2]]
| next = [[../Chapter 4|Chapter 4]]
| year = 1865
| notes =
}}
No author link
[edit]{{header
| title = Peerage Act 1963
| author = |override_author= the United Kingdom Parliament
| section =
| previous =
| next =
| year = 1963
| notes =
}}
Peerage Act 1963
Translation
[edit]{{header
| title = Fables
| author = Jean de La Fontaine
| translator= Elizur Wright
| section =
| previous =
| next =
| notes =
}}
{{header
| title = Pantagruel
| author = François Rabelais
| override_translator= [[Author:Thomas Urquhart|]] and [[Author:Peter Antony Motteux|]]
| section =
| previous =
| next =
| notes =
}}
Fables
by Jean de La Fontaine
Pantagruel
by François Rabelais
Sister, related author, and portal wiki links
[edit]You can link to Wikisource portals and other WMF projects using the optional wiki links parameters. These are:
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}},
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}}
These links are generated using {{plain sister}}
{{header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal = Technology/Germany
| wikipedia = Kinematics of Machinery
| commonscat = Kinematics of Machinery
| related_author = Albert Einstein
}}
Kinematics of Machinery
by Franz Reuleaux
Shortcuts
[edit]If a work has a shortcut, you can add it using the
|-
|{{{p}}}
|{{{{{r}}}}}
|Template:Fb p color
|Template:Fb p color||Template:Fb p color
|align=left|{{{d}}}
|align=left|{{{v}}} field. This should be in accordance with the shortcut guidelines, and shortcuts should not be used for every work.
{{header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
1911 Encyclopædia Britannica
Advanced manipulation
[edit]Alternative headers
[edit]^ Certain projects have customised versions of {{header}} that are used to present these works, eg. {{DNB00}} is used for the project involved with Dictionary of National Biography. For these works it is permissible and recommended that these variations are used. New alternatives to {{header}} should be discussed on the talk page, and consequentially listed on each project's pages.
JavaScript extraction
[edit]The header values can be extracted using JavaScript by accessing the text values of their span wrappers:
| value | wrapper id |
|---|---|
| title | header_title_text |
| author | header_author_text |
| translator | header_translator_text |
| previous | headerprevious |
| next | headernext |
| notes | none |
See also
[edit]- {{textinfo}} for recording information on work's talk page
- {{author}} for template header used in Author: namespace
- {{process header}} for template header used in Wikisource: namespace
- {{portal header}} for template header used in Portal: namespace