Template:Anchor/doc: Difference between revisions

From Guild of Archivists
m (1 revision imported)
No edit summary
 
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]