Template:Anchor/doc: Difference between revisions

From Guild of Archivists
(Undid rev. 660884744 by 174.141.182.82 (talk) While this is a mild inconvenience, the template IS used in section titles all over WP and there are even recommendations to put it there)
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{Documentation subpage}}
{{Documentation subpage}}
{{high-use|40,000+}}
{{lua|Module:Anchor}}
{{lua|Module:Anchor}}
<!-- PLEASE ADD CATEGORIES AT THE END OF THIS PAGE, ND INTERWIKIS LINKS TO WIKIDATA -->
<!-- PLEASE ADD CATEGORIES AT THE END OF THIS PAGE, ND INTERWIKIS LINKS TO WIKIDATA -->


The template <nowiki>{{</nowiki>[[{{ns:Template}}:{{BASEPAGENAME}}|{{lc:{{BASEPAGENAME}}}}]]<nowiki>}}</nowiki> inserts one or more [[Fragment identifier|HTML fragment identifiers]] (anchor names) in a page. Those locations can then be linked to using <code><nowiki>[[#Location|...]]</nowiki></code> syntax. {{#ifeq:{{BASEPAGENAME}}|Visible anchor|&nbsp;Unlike {{tl|Anchor}}, the first parameter will be visible text on the page.|}} (Usually the first letter of the ''location'' is capitalised to reflect the common capitalisation used in section headers – see [[MOS:HEAD]].)
The template <nowiki>{{</nowiki>[[{{ns:Template}}:{{BASEPAGENAME}}|{{lc:{{BASEPAGENAME}}}}]]<nowiki>}}</nowiki> inserts one or more HTML fragment identifiers (anchor names) in a page. Those locations can then be linked to using <code><nowiki>[[#Location|...]]</nowiki></code> syntax. {{#ifeq:{{BASEPAGENAME}}|Visible anchor|&nbsp;Unlike {{tl|Anchor}}, the first parameter will be visible text on the page.|}} (Usually the first letter of the ''location'' is capitalised to reflect the common capitalisation used in section headers.)


== Examples ==
== Examples ==
Line 16: Line 15:
{|class="wikitable" style="float:right"
{|class="wikitable" style="float:right"
!Character
!Character
![[Character entity reference|Code]]
!Code
!Template
!Template
!Meaning
!Meaning
Line 23: Line 22:
|<code>&amp;quot;</code> <br /><code>&amp;#34;</code>
|<code>&amp;quot;</code> <br /><code>&amp;#34;</code>
|{{N/a}}
|{{N/a}}
|(double)&nbsp;[[quotation mark]]
|(double)&nbsp;quotation mark
|-
|-
|#
|#
|<code>&amp;#35;</code>
|<code>&amp;#35;</code>
|{{N/a}}
|{{N/a}}
|[[Number sign|hash]]
|hash
|-
|-
|&#124;
|&#124;
|<code>&amp;#124;</code>
|<code>&amp;#124;</code>
|{{tl|!}}
|{{tl|!}}
|[[Vertical bar|pipe]]
|pipe
|-
|-
|&#61;
|&#61;
|<code>&amp;#61;</code>
|<code>&amp;#61;</code>
|{{tl|{{=}}}}
|{{tl|{{=}}}}
|[[Equals sign|equals]]
|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 "&amp;#" codes shown for them here. Or, the pipe symbol and equals sign can be worked around with {{tl|!}} and {{tl|{{=}}}}, respectively. Markup code such as {{tag|sup|o}} and {{tag|sub|o}} (superscript and subscript) cannot be used. Most other characters, including white space and punctuation, are not a problem.
* 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 "&amp;#" codes shown for them here. Or, the pipe symbol and equals sign can be worked around with {{tl|!}} and {{tl|{{=}}}}, respectively. Markup code such as {{tag|sup|o}} and {{tag|sub|o}} (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 <code><nowiki>#location</nowiki></code> 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]].
* Anchor names should be unique on a page, and should not duplicate any heading titles. Duplicate anchors will not work as expected since the <code><nowiki>#location</nowiki></code> 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 [[w: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 {{nowrap|1="<code><nowiki>/* {{anchor|Issues}}Limitations */ New issue</nowiki></code>"}}. Also, when the section is saved, browsers may not return to the section. Consider using <code><nowiki><span id="..."></span></nowiki></code> directly, rather than using the anchor template, when in a section title.
* 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 {{nowrap|1="<code><nowiki>/* {{anchor|Issues}}Limitations */ New issue</nowiki></code>"}}. Also, when the section is saved, browsers may not return to the section. Consider using <code><nowiki><span id="..."></span></nowiki></code> 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.
* Anchor links are case sensitive in some browsers, so treat all anchor links as case sensitive.
Line 85: Line 84:


=== See also ===
=== See also ===
* {{#ifeq:{{BASEPAGENAME}}|Visible anchor|{{tl|Anchor}}|{{tl|Visible anchor}}}}
* {{tl|Anchored list}}
* {{tl|Anchor comment}}
* {{tl|Shortcut}}
* {{tl|Shortcut}}
* [[WP:ANCHOR]]
* [[WP:TARGET]]


<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||

Latest revision as of 07:27, 11 July 2016

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.)

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"></span> 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
" &quot;
&#34;
N/A (double) quotation mark
# &#35; N/A hash
&#124; {{!}} pipe
= &#61; {{}} 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 w: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[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 this template used by VisualEditor and other tools.

TemplateData for 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.

Template parameters

ParameterDescriptionTypeStatus
First anchor1

First anchor; Only the first anchor is required.

Stringrequired
Second anchor2

Second anchor.

Stringoptional
Third anchor3

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.

Stringoptional

See also[edit source]