Template:Shortcut/doc
This is a documentation subpage for
Template documentation[edit source]
Template sandbox and testcases for TEMPLATE_NAME[edit source]Overview[edit source]This page provides a clean workflow to safely edit and validate TEMPLATE_NAME:
Use this page to:
Quick links[edit source]
How to test[edit source]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 source]
Test harness[edit source]The following sections render the sandbox template against curated inputs. Each testcase shows:
Testcase A: Minimal invocation[edit source]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 source]
Within the template[edit source]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 source]
Testcase B: Common parameters[edit source]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 source]
Within the template[edit source]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 source]
Testcase C: Edge values and escaping[edit source]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 source]
Within the template[edit source]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 source]
Testcase D: Internationalization (i18n)[edit source]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 source]
Within the template[edit source]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 source]
Testcase E: Error handling[edit source]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 source]
Within the template[edit source]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 source]
Maintenance[edit source]
Categories[edit source]Copy-paste skeletons[edit source]Below are ready-to-use skeletons for the sandbox and testcases subpages. Skeleton: Template:TEMPLATE_NAME/sandbox[edit source]<!-- 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 source]<!-- 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 source]
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 source]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 source]
Behavior details[edit source]
Examples[edit source]
{{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 source]
Lua-powered variant (optional)[edit source]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 source]It may contain usage information, categories and other content that is not part of the original template page. |
| This template uses Lua: |
| Related pages |
|---|
| This template is used on approximately 22,000 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. |
This is the documentation for {{shortcut}} and its sister templates. Template {{shortcut}} renders a box, informing editors which shortcuts are available for linking to a page or a section of a page.
The shortcut family of templates is put into context here, but they each have their own documentation pages, see below. A shortcut template is similar to the {{anchor}} template, but it adds a visual box graphic to the rendered page, as well as providing an alternative name. Creating a redirect page is a requirement to fulfill the shortcut mechanism.
Usage
[edit source]This template should not be used for articles in the main namespace, because the graphic produces an unavoidable self-reference.
In templates, it is put in the documentation page.
- Insert the shortcut template.
- Create a redirect page with the {{R from shortcut}} template suffixed to the redirect. Name the page after your shortcut name. Include the namespace name in both the shortcut name and the redirect page name. For example, substitute your own shortcut name as the title of the page, and substitute the proper namespace, then add the REDIRECT as the top-line on your redirect page, and the category to the third line of the redirect:
#REDIRECT [[Namespace:Title of page with#Optional and possibly very long section name]]
{{R from shortcut}}
- Verify operation. Note that shortcut templates should display in all capitals, but operate without all capitals.
Notes Shortcuts are used mainly on user pages and talk pages in reference to the Wikipedia, Help, and Portal namespaces. These templates inform about the shortcuts available to the page they are on. For example, WP:SHORT redirects to Wikipedia:Shortcut and therefore, Wikipedia:Shortcut renders a shortcut box listing WP:SHORT. It is a self-reference that is normally avoided in the main article namespace.
Do not list every single redirect for a page. Per the WP:LINKBOXES guideline, list the most common and easily remembered redirects. Use Special:WhatLinksHere and https://pageviews.wmcloud.org/ to determine which ones are most commonly used. Most linkboxes only show one shortcut. It is rare for three or more shortcuts to be commonly used.
Parameters
[edit source]{{shortcut}} takes the following parameters:
1,2,3... – the shortcut links.float– if set toleft, the box floats to the left.clear– if set toright, (orleftif|float=leftis set), the box appears beneath, not beside, another floating element preceding it (infobox, thumbnail etc.).msg– an unlinked message that goes after the shortcut links.category– set to "no", "n", "false" or "0" to suppress error categories.
Examples
[edit source]| Code | Result |
|---|---|
{{Shortcut|WP:SHORT}} |
[[Commons:Shortcuts|]]: WP:SHORT |
{{Shortcut|WP:V|WP:VERIFY|WP:SOURCE}} |
[[Commons:Shortcuts|]]: WP:V • WP:VERIFY • WP:SOURCE |
{{Shortcut|WP:V|WP:VERIFY|msg=A message}} |
[[Commons:Shortcuts|]]: WP:V • WP:VERIFY |
Anchors
[edit source]These templates automatically add an anchor for each shortcut name parameter. For example, if a shortcut box with the shortcut WP:SHORT is placed on the page Wikipedia:Shortcut, then the link Wikipedia:Shortcut#WP:SHORT will take you to the position in the page where that shortcut box is placed.
Examples: #WP:SHORT, and
This makes it easier to create a shortcut for a section of a page, because you can refer to the anchor when creating the shortcut redirect itself. Like this:
#REDIRECT [[Pagename#WP:SHORT]] {{R from shortcut}}
Positioning
[edit source]This template is usually placed below the section header or at the top of a page.
Before July 26, 2010, when the anchor was inside the box, this caused the section header to scroll above the page window. Fixes for this issue included:
- Placing the shortcut above the section header; a bit confusing when editing
- Creating the redirect to the section header, not the shortcut; this would break if the section header was renamed
- Placing an {{anchor}} in the section header that duplicated the shortcut
These fixes are no longer needed, but do not break the current implementation.
TemplateData
[edit source]TemplateData for Shortcut
| Parameter | Description | Type | Status | |
|---|---|---|---|---|
| Template? | template | Whether this is a list of shortcuts for a Template. See also:
| Boolean | optional |
| Redirect? | redirect | Whether to refer to the “shortcut/s” as “redirect/s” instead.
| Boolean | optional |
| Target? | target | Whether to omit the redirect=no URL parameter.
| Boolean | optional |
| Float | float | The CSS float property value.
| String | optional |
| Clear | clear | The CSS clear property value.
| String | optional |
| Categorize | category | Whether to add pages to the error category if no alias or msg is specified.
| Boolean | optional |
| Message | msg | An unlinked message that goes after the shortcut links. | Content | optional |
| Shortcut 1 | 1 | Page/section shortcut 1 | Page name | required |
| Shortcut 2 | 2 | Page/section shortcut 2 | Page name | optional |
| Shortcut 3 | 3 | Page/section shortcut 3 | Page name | optional |
| Shortcut 4 | 4 | Page/section shortcut 4 | Page name | optional |
| Shortcut 5 | 5 | Page/section shortcut 5 | Page name | optional |
| Shortcut 6 | 6 | Page/section shortcut 6 | Page name | optional |
| Shortcut 7 | 7 | Page/section shortcut 7 | Page name | optional |
| Shortcut 8 | 8 | Page/section shortcut 8 | Page name | optional |
| Shortcut 9 | 9 | Page/section shortcut 9 | Page name | optional |
See also
[edit source]| Template | Shortcut | Result |
|---|---|---|
| {{Shortcut}} | {{Sh}} |
[[Commons:Shortcuts|]]: WP:THIS |
| {{Shortcut compact}} | {{Hsh}} |
|
| {{Shortcut mini}} | {{Msh}} |
WP:THIS 📌 |
| {{Template shortcut}} | {{Tsh}} |
|
| {{Template redirect}} | {{Tlr}} |
|
| {{Short URL box}} | {{Urlb}} |
[[Commons:Shortcuts|]]: [[:|{{{1}}}]] |
| {{Shortcut-style further links}} | {{Msh}} |
- {{Anchor}} – Creates an HTML anchor that can be linked to
- {{Visible anchor}} – Highlights the linked text, like this.
- {{Section link}} – Link to an anchor or section
- {{R for convenience}} – For placement on the redirect page
- {{R from shortcut}} – For shortcut boxes
- {{R to redirect template}} – For template redirects