Details
The short-cite templates employ an article reader to read the article's raw wikitext (the same text that you see in the source editor's edit window). While reading the wikitext, the article reader looks for a variety of templates that can create anchor IDs. For each such template found, the article reader attempts to extract the necessary information to determine the template's anchor ID, if it produces one. For cs1|2, the most common long-form citation templates, the article reader looks for:
- The default anchor ID created by the template automatically: up to four author / editor / contributor surname(s) and the year portion of the date
|ref={{sfnref}}
: the anchor ID generated by {{sfnref}}
(or its redirect {{harvid}}
)
|ref=<plain text>
: the anchor ID is the <plain text>
The article reader extracts similar information from other templates as appropriate for those templates.
Each long-form citation anchor ID is saved in a list along with a tally indicating how many of that ID the article reader found. When the short-cite template renders its output, it looks for its target anchor ID in the anchor-ID list:
- anchor ID found and the tally is 1: short-cite template is rendered without error message
- anchor ID found and the tally is 2 or more: short-cite template is rendered with a multiple target error message and the article is added to Category:Harv and Sfn template errors
- anchor ID not found: short-cite template is rendered with a no target error message and the article is added to Category:Harv and Sfn template errors
The no target errors may be true errors or may be false-positive errors. For true errors, there is no anchor ID in the article to match the anchor ID expected by the short-cite template. A false-positive error occurs because the article reader can only read the article's raw wikitext, it cannot burrow into wrapper templates. Wrapper templates enclose the template that creates the anchor ID. This enclosure hides the necessary details, so the article reader cannot determine that wrapper template's anchor ID. For example, {{cite DNB}}
is a wrapper template that encloses {{cite encyclopedia}}
. The values assigned to the {{cite DNB}}
parameters |year=
and |supplement=
tell {{Cite DNB}}
how to set editor names and date in its call to the enclosed {{cite encyclopedia}}
, which uses them to create the wrapper template's anchor ID. When a wrapped template creates a matching anchor ID that the article reader cannot see; the link from short-cite to long-form citation works but is marked with a no target false-positive error message.