Template:Refn/doc
Script error: The module returned a nil value. It is supposed to return an export table. This template is for inserting references that may require more complex content than just plain text with links - the most common use-case is nesting references.
- About
Normal <ref>
tags cannot directly contain any parser/preprocessor functions. This includes standard parser functions, particularly #if
and similar, as well as other <ref>
tags. For parser functions, a way to counter this is to use a template to abstract the function. An alternative method is to use the #tag
parser function - which is what this template does, more cleanly.
In addition, preprocessor extensions (like <ref>
tags) must be nested in this way.
Usage
{{Refn|reference content}}
Refn also supports the two most commonly used extra parameters, name
and group
:
{{Refn|reference content|name=ref name|group=ref group}}
- Nesting
As mentioned, the most common use-case is nesting references. When nesting references, the outer <ref>
tags must be replaced by this template - the innermost tag can remain a <ref>
tag, but Refn cannot be inside a <ref>
tag at all. The standardised CiteX templates (e.g. Template:CiteGeneral) all utilise this method already, so are nestable.
{{Refn|outer reference content{{Refn|nested reference for the outer reference content}}}}
Note that the references will be in ordered in parsing order, which is the innermost to the outermost - this is generally not the most logical order for reading, so making footnotes of footnotes or citations of citations is not advised - mix groups.
Examples
- Markup
* text {{Refn|reference content 1}} * text 2 {{Refn|outer reference content{{Refn|nested reference for the outer reference content}}}} * text 3 {{Refn|outer refn<ref>inner reftag</ref>}} ;Reflist <references />
- Result
- Reflist
Here you can clearly see the inner tags sorted before the outer tags.