W:Template:Anchor
Template:High-use Template:Lua
The template {{w: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 MOS:HEAD.)
Examples
{{w:template: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.- Anchors can be more suitable for inter-article linking than section titles are. For example:
==Template:Sp
{{w:template:anchor|Foo}}
Template:SpSection 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:
==Template:Sp
<span id="Foo"></span>
Template:SpSection title == - The template can be used to create multiple anchors with a single call. For example,
{{w:template:anchor|Foo|Bar|baz}}
will create three anchors that can then be linked to with[[#Foo]]
,[[#Bar]]
and[[#baz]]
.
Limitations
Character | Code | Template | Meaning |
---|---|---|---|
" | " "
|
Template:N/a | (double) quotation mark |
# | #
|
Template: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
#location
links 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="..."></span>
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
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:<source enclose=div lang=text>|+ A table caption</source> and the following forms of cell are valid:<source enclose=div lang=text>! A header cell
!style="background:white;" | A header cell with styling
| A data cell
|rowspan=2 | A data cell spanning two rows</source> 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:<source enclose=div lang=text>! |A header cell
!style="background:white;" |A header cell with styling
| |A data cell
|rowspan=2 |A data cell spanning two rows</source> 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:<source enclose=div lang=text>{| 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</source> 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
Template:TemplateDataHeader <templatedata>{ "description": "The template inserts one or more HTML anchors in a page. Those locations can then be linked to using ... syntax. The parameters here are for convenience; no parameter name is required in the template itself.", "params": {
"1": { "label": "First anchor", "description": "First anchor; Only the first anchor is required.", "type": "string", "required": true }, "2": { "label": "Second anchor", "description": "Second anchor.", "type": "string", "required": false }, "3": { "label": "Third anchor", "description": "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.", "type": "string", "required": false }
}}</templatedata>
See also
- {{Visible anchor}}
- {{Anchored list}}
- {{Anchor comment}}
- {{Shortcut}}
- WP:ANCHOR
- WP:TARGET