Template:Anchor/doc
This is a documentation subpage for
Template documentation[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 is used on 36,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 template uses Lua: |
The template {{anchor}} inserts one or more HTML fragment identifiers (anchor names) in a page. Those locations can then be linked to using [[#Location|…]] syntax. (Usually the first letter of the location is capitalised to reflect the common capitalisation used in section headers – see .)
Examples
[edit source]1. {{anchor|Foo}}
- could be linked to with [[#Foo|…]] from within the same article,
- or it could be linked to with [[Article name#Foo|…]] from other articles and from redirects.
2. Anchors can be more suitable for inter-article linking than section titles are. For example:
=={{anchor|Foo}}Section title ==- Here, links via [[Article name#Foo]] would remain valid even if the section were renamed. (Note that the anchor is placed before the section name; otherwise browsers may hide the section title from view.) However, as noted under Limitations below, it may be preferable to use direct HTML rather than the template within section titles:
==<span id="Foo" />Section title ==
3. The template can be used to create multiple anchors with a single call. For example,
{{anchor|Foo|Bar|baz}}- will create three anchors that can then be linked to with [[#Foo]], [[#Bar]] and [[#baz]].
Limitations
[edit source]| Character | Code | Template | Meaning |
|---|---|---|---|
| " | " " |
N/A | (double) quotation mark |
| # | # |
N/A | hash |
| | | | |
{{!}} | pipe |
| = | = |
{{=}} | equals |
- Anchor names that contain any character shown in the table on the right will not work as expected. However, any of these characters can be replaced with the "&#" codes shown for them here. Or, the pipe symbol and equals sign can be worked around with {{!}} and {{=}}, respectively. Markup code such as
<sup>and<sub>(superscript and subscript) cannot be used. Most other characters, including white space and punctuation, are not a problem. - Anchor names should be unique on a page, and should not duplicate any heading titles. Duplicate anchors will not work as expected since the
#locationlinks go to the first anchor with that name. Duplicate anchors result in invalid HTML; you can check for duplicate anchors by running the page through the W3C Markup Validation Service. - If the template is added to a section title then the code will appear in the edit summary window when that section is edited, as in "
/* {{anchor|Issues}}Limitations */ New issue". Also, when the section is saved, browsers may not return to the section. Consider using<span id="..." />directly, rather than using the anchor template, when in a section title. - Anchor links are case sensitive in some browsers, so treat all anchor links as case sensitive.
Use in tables
[edit source]
Anchors may be used within tables, subject to certain restrictions. The {{anchor}} template may be used in the caption and cells of a table, but not those portions of a table that are outside the caption and cells. It is used on the table's caption thus:
|+ {{anchor|FooX}} A table caption
and the following forms of cell are valid:
!{{anchor|Foo1}} A header cell
!style="background:white;" |{{anchor|Foo2}} A header cell with styling
|{{anchor|Foo3}} A data cell
|rowspan=2 |{{anchor|Foo4}} A data cell spanning two rows
You need to ensure that the {{anchor}} is not in that portion of the markup intended for the classes, styles etc. Thus, {{anchor}} cannot be placed anywhere on lines that begin with {| (start of table) or |- (new row), and the following forms of cell are not valid:
!{{anchor|Foo1}} |A header cell
!style="background:white;" {{anchor|Foo2}} |A header cell with styling
|{{anchor|Foo3}} |A data cell
|rowspan=2 {{anchor|Foo4}} |A data cell spanning two rows
If it is necessary for an anchor to be in any of these positions, a different technique is used - the id= attribute. This is placed in that portion of the markup where the classes, styles etc. may be used, as follows:
{| id=FooX class=wikitable
|- id=FooY
!id=Foo1 |A header cell
!style="background:white;" id=Foo2 |A header cell with styling
|id=Foo3 |A data cell
|rowspan=2 id=Foo4 |A data cell spanning two rows
The id= attribute may appear before, between or after any other attributes that may be present, but only one id= attribute may be used in each of these areas.
TemplateData
[edit source]This is the TemplateData documentation for the template used by the new VisualEditor.
Anchor
The template {{anchor}} inserts one or more HTML anchors in a page. Those locations can then be linked to using [[#location|…]] syntax. The parameters here are for convenience; no parameter name is required in the template itself.
| Parameter | Description | Type | Status | |
|---|---|---|---|---|
| First anchor | 1 | First anchor; Only the first anchor is required. | String | required |
| Second anchor | 2 | Second anchor. | String | optional |
| Third anchor | 3 | Third anchor. For additional anchors, just type in 4 as the parameter name for the next, 5 for the next after that, and so on. | String | optional |
See also
[edit source]- {{Visible anchor}}
- {{Anchored list}}
- {{Anchor comment}}
- {{Shortcut}}
- WP:ANCHOR
- WP:TARGET