ᱢᱳᱰᱩᱞ:Labelled list hatnote/doc
This is the documentation page for ᱢᱳᱰᱩᱞ:Labelled list hatnote
This module is subject to page protection. It is a highly visible module in use by a very large number of articles, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is is protected from editing. |
This template is used on ᱑᱕᱔,᱐᱐᱐+ pages. To avoid large-scale disruption and unnecessary server load, any changes to it should first be tested in its /sandbox or /testcases subpages or in your own user subpage. The tested changes can then be added to this page in a single edit. Please consider discussing any changes on the talk page before implementing them. |
This ᱢᱳᱰᱩᱞ is used in MediaWiki:Wantedpages-summary. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid large-scale disruption, any changes should first be tested in this ᱢᱳᱰᱩᱞ's /sandbox or /testcases subpage, or in your own user space. The tested changes can then be added in one single edit to this ᱢᱳᱰᱩᱞ. Please discuss any changes on the talk page before implementing them. |
This module provides a handful of functions that make it easy to implement hatnotes that take the form of a label in front of a list of pages, e.g.
Usage
ᱥᱟᱯᱲᱟᱣlabelledList
ᱥᱟᱯᱲᱟᱣInvoking the labelledList()
function is enough to implement most such templates:
{{#invoke:Labelled list hatnote|labelledList|Universal label}}
or
{{#invoke:Labelled list hatnote|labelledList|Singular label|Plural label}}
For example, providing "See also" instead of "Universal label" duplicates the functionality of {{see also}}, while providing "Main article" and "Main articles" instead of "Singular label" and "Plural label" duplicates the (article namespace) functionality of {{main}}.
preprocessDisplays
ᱥᱟᱯᱲᱟᱣThe preprocessDisplays()
function takes a raw list of arguments and combines in any display arguments. For example, {{see also|1|l1=One}}
initially has the arguments table {'1', ['l1'] = 'One'}
; this table would combine those into the table {'1|One'}
. It overrides manual piping (e.g. {{see also|1{{!}}2|l1=One}}
→ {'1|One'}
) and compresses sparse arrays if a parameter is skipped or left empty.
Example:
local mLabelledList = require('Module:Labelled list hatnote')
local pages = mLabelledList.preprocessDisplays(args)
_labelledList
ᱥᱟᱯᱲᱟᱣFor modules that need to modify the functionality slightly while still using it, _labelledList()
provides some flexibility. It takes three parameters:
- A pages list, preferably preprocessed and compressed by
preprocessDisplays
- A labels table, where the first item is the singular or universal label, and the second either a plural label or a copy of the first.
- An options table, preferably containing:
- a
template
string with the full title of the template. Defaults to the title of this module. - a
category
string (or nil) as taken bymakeWikitextError
from Module:Hatnote, to optionally disable error categories - a
selfref
string (or nil) as taken by_hatnote
to enable the selfref option
- a
Example:
local mLabelledList = require('Module:Labelled list hatnote')
return mLabelledList._labelledList(pages, labels, options)
Errors
ᱥᱟᱯᱲᱟᱣThis module causes templates based on it to produce an error message if no page names are provided as template parameters. Normally, these should lead back to "Errors" sections in the documentation of those templates. However, if those templates use a module with _labelledList()
and don't provide a template
item in their options table, that error defaults to leading back here. The error can be solved by providing at least one valid page-name parameter to the template in question; the problem in the template can be fixed by providing some value to the template
item of the _labelledList()
options
table.