Global Lua Modules/Hatnote

The hatnotes used for adding links between articles where more context is important.
Broadly speaking, a hatnote should answer a readers' question: Am I on the right page?
== ==
===Template===
The module is designed to be used as a regular template. To do that just create a template (ex: Template:Hatnote) with following content:
{{#invoke:Hatnote|hatnote}}
Now the template you created will accept parameters documented below.
To implement Main template, the same module is used with a different parameter. Create a template (ex: Template:Main) with:
{{#invoke:Hatnote|main}}
To create a template accepting the parameters documented below.
These parameters can also be passed directly to the #invoke and will act as defaults. Their values will be overridden by same ones passed to the template.
== ==
* Module:Hatnote (cf. w:c:templates:module:Hatnote)
* Module:Hatnote/i18n (cf. w:c:templates:module:Hatnote/i18n) (for this documentation)
* Module:I18n (cf. w:c:templates:module:I18n) (for this documentation)
* [ Category:]
* [ Category:]
== ==
; Basic usage:
 {{hatnote|text}}
; All parameters:
 {{hatnote|text|extraclasses=extra classes|selfref=yes|category=no}}
== ==
This template accepts the following parameters:
* 1 - the hatnote text (required)
* extraclasses - any extra CSS classes to be added.
* selfref - If set to "yes", "y", "true" or "1", adds the CSS class "selfref". This is used to denote self-references.
* category - If set to "no", "n", "false", or "0", suppresses the error tracking category ([ Category:]). This has an effect only if the leftmost parameter (the hatnote text) is omitted.
== ==
: Examples below may be applied additional styles which only exist in this wiki.
* {{hatnote|Example hatnote text}} → 
== Typical types ==
, are very similar, but indicate either the primary page for a topic or more detailed related topic. They have a nearly identical set of parameters.
;: When an article is large, it often has a summary and a link to a main article. This template is used after the heading of the summary, to indicate a link to the subtopic article that has been summarized.
;: Used to link to articles containing further information on this topic.
;: Used to link to additional articles on related topics.
:; →:
:; →:
:*1, 2, 3, ... – the pages to link to. If no page names are specified, the current page name is used instead (without the namespace prefix). Categories and files are automatically escaped with the colon trick, and links to sections are automatically formatted as page § section, rather than the MediaWiki default of page#section.
:*l1, l2, l3, ... orlabel 1, label 2, label 3, ... – optional labels for each of the pages to link to (this is for articles where a piped link would be used). Note that the extra parameters use a lower case 'L', for example, l1, not L1.
:*selfref – if set to "yes", "y", "true" or "1", adds the CSS class "selfref". This is used to denote self-references.
== Disambiguation ==
: Examples below may have some of their links removed to prevent redlinks in documentation.
Templates such as and are to be used in cases where a disambiguation is not needed. In general, disambiguation pages should only be used for 4 or more titles that are mostly or entirely identical, except for a qualifier.
;: Links the reader to other articles with similar titles or concepts that they may have been seeking instead. The template has several formats, including:
:; →:
:; →:
:; →:
:; →:
:; →:
:; →:
Alternately, a section=yes parameter can be added to the template for use at the top of a section. When using this parameter, the wording in the template changes to specify that it is being used in a section:
:; →:
:; →:
:; →:
:; →:
:; →:
A text option adds text to the end; note that this should be only used when truly necessary, and the other hatnote templates listed below don't suffice. This template also supports selfref.
;: Provides links to up to four articles or disambiguation pages. It accepts zero to five parameters. 
:;If used without parameters on a page named Foo, the result is
::
:;The first parameter changes the hatnote itself and should be plain text, e.g. yields
::
:;The second parameter is used to change the resultant link, e.g. yields
::
:;The third, fourth and fifth parameters are used to give one, two, or three supplementary links:
:*
:*
:*
:the last being produced by e.g. .
== Errors ==
If no hatnote text is supplied, the template will output the following message:
* 
If you see this error message, it is for one of four reasons:
# No parameters were specified (the template code was {{hatnote}}). Please use {{hatnote|text}} instead.
# Some parameters were specified, but the hatnote text wasn't included. For example, the template text {{hatnote|extraclasses=seealso}} will produce this error. Please use (for example) {{hatnote|text|extraclasses=seealso}} instead.
# The hatnote text was specified, but that text contains an equals sign ("="). The equals sign has a special meaning in template code, and because of this it cannot be used in template parameters that do not specify a parameter name. For example, the template code {{hatnote|2+2=4}} will produce this error. To work around this, you can specify the parameter name explicitly by using 1= before the hatnote text, like this: {{hatnote|1=2+2=4}}.
# You tried to access Module:Hatnote directly by using {{#invoke:hatnote|hatnote|text}}. Use of #invoke in this way has been disabled for performance reasons. Please use {{hatnote|text}} instead.
Pages that contain this error message are tracked in [ Category:].
== Technical details ==
This template uses the Lua templating language, and more information can be found on the Global Lua Module page. For a traditional wikitext version of this template, see Hatnote on Templates Wiki.
The HTML code produced by this template looks like this:
* hatnote text
== Styling ==
For styling similar to that visible on this wiki, you can use the following rule in your site-wide CSS:
.hatnote {
 background-color: rgba(171, 171, 171, 0.11);
 border-collapse: collapse;
 border-left: 10px solid var(--theme-accent-color);
 line-height: 1.5em;
 margin: 0;
 margin-bottom: 10px;
 padding: 10px;
 text-align: center;
 overflow: hidden;
}
In MediaWiki:FandomMobile.css, the selector .context-link should be used instead of .hatnote, as all other classes except for context-link get stripped from hatnote elements on mobile.
== ==
* Template:Main
* Template:Further
* Template:See also
* Template:About
* Template:For
* Template:Details
* Template:Format link
** wikipedia:Template:Format link
* wikipedia:module:Hatnote
* wikipedia:module:Hatnote list