Module:Hatnote/doc: Difference between revisions
m (1 revision imported) |
(Currently "Template:Format link" calls "Module:Format link" for this work.) |
||
Line 3: | Line 3: | ||
{{Lua|Module:Yesno|Module:Arguments}} | {{Lua|Module:Yesno|Module:Arguments}} | ||
{{Uses TemplateStyles|Module:Hatnote/styles.css}} | {{Uses TemplateStyles|Module:Hatnote/styles.css}} | ||
This is a meta-module that provides various functions for making [[Wikipedia:Hatnote|hatnotes]]. It implements the {{tl|hatnote}} template, for use in hatnotes at the top of pages | This is a meta-module that provides various functions for making [[Wikipedia:Hatnote|hatnotes]]. It implements the {{tl|hatnote}} template, for use in hatnotes at the top of pages. It also contains a number of helper functions for use in other Lua hatnote modules. | ||
== Use from wikitext == | == Use from wikitext == | ||
Line 82: | Line 82: | ||
== Examples == | == Examples == | ||
For an example of how this module is used in other Lua modules, see [[Module: | For an example of how this module is used in other Lua modules, see [[Module:Labelled list hatnote]] | ||
<includeonly>{{Sandbox other|| | <includeonly>{{Sandbox other|| | ||
<!-- Categories go here and interwikis go in Wikidata. --> | <!-- Categories go here and interwikis go in Wikidata. --> |
Revision as of 00:57, 14 August 2023
File:Ambox important.svg | This Lua module is used {{#if:in MediaWiki:Wantedpages-summary|in MediaWiki:Wantedpages-summary|in system messages}}, and on approximately 1,860,000 pages, or roughly 19552% of all pages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Please discuss changes on the talk page before implementing them. |
{{#if:{{#ifeq:doc|sandbox|1}}{{#ifeq:doc|doc|1}}||{{#switch:Lua error: First parameter must be one of edit, move, create, upload, undelete, autoreview.|sysop|templateeditor|interfaceadmin=|#default=}}}}
{{#ifeq:doc|doc|{{#if:|Template:Pp}}|{{#switch:
{{#if: | | {{#ifeq:Module|Module | module | other }} }}
| module =
{{#switch: protected
| pre-alpha | prealpha | pa = File:Ambox warning blue construction.svg | alpha | a = File:Alpha lowercase.svg | beta | b = File:Greek lc beta.svg | release | r | general | g = File:Green check.svg | protected | protect | p = [[File:{{#switch:Lua error in Module:Effective_protection_level at line 14: attempt to index local 'title' (a nil value).|autoconfirmed=Semi|extendedconfirmed=Extended|accountcreator|templateeditor=Template|#default=Full}}-protection-shackle.svg|40x40px|link=|alt=Protected]] | semiprotected | semiprotect | semi =File:Semi-protection-shackle.svg}} | {{#switch: protected
| pre-alpha | prealpha | pa = This module is rated as pre-alpha. It is unfinished, and may or may not be in active development. It should not be used from article namespace pages. Modules remain pre-alpha until the original editor (or someone who takes one over if it is abandoned for some time) is satisfied with the basic structure.{{#switch: doc|doc|sandbox= | {{#ifeq: | true | | }} }} | alpha | a = This module is rated as alpha. It is ready for third-party input, and may be used on a few pages to see if problems arise, but should be watched. Suggestions for new features or changes in their input and output mechanisms are welcome.{{#switch: doc|doc|sandbox= | {{#ifeq: | true | | }} }} | beta | b = This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected.{{#switch: doc|doc|sandbox= | {{#ifeq: | true | | }} }} | release | r | general | g = This module is rated as ready for general use. It has reached a mature form and is thought to be relatively bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by sandbox testing rather than repeated trial-and-error editing.{{#switch: doc|doc|sandbox= | {{#ifeq: | true | | }} }} | protected | protect | p = This module is subject to page protection. It is a highly visible module in use by a very large number of pages, 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 protected from editing.{{#switch: doc|doc|sandbox= | {{#ifeq: | true | | }} }} | semiprotected | semiprotect | semi = This module is subject to page protection. It is a highly visible module in use by a very large number of pages, 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 semi-protected from editing.{{#switch: doc|doc|sandbox= | {{#ifeq: | true | | }} }} | #default = Template:Error}} |
| other | #default = Template:Error }}}}
File:Lua-Logo.svg | This module depends on the following other modules: |
Lua error in Module:TNT at line 159: Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:I18n/Uses TemplateStyles.tab. This is a meta-module that provides various functions for making hatnotes. It implements the {{hatnote}} template, for use in hatnotes at the top of pages. It also contains a number of helper functions for use in other Lua hatnote modules.
Use from wikitext
The functions in this module cannot be used directly from #invoke, and must be used through templates instead. Please see Template:Hatnote and Template:Format link for documentation.
Use from other Lua modules
To load this module from another Lua module, use the following code.
<syntaxhighlight lang="lua"> local mHatnote = require('Module:Hatnote') </syntaxhighlight>
You can then use the functions as documented below.
Hatnote
<syntaxhighlight lang="lua"> mHatnote._hatnote(s, options) </syntaxhighlight>
Formats the string s as a hatnote. This encloses s in the tags {{#switch:pair
|c|close =
|e|empty|s|single|v|void
|o|open
|p|pair = <{{#if:|div|div}}{{#if:class="hatnote"| class="hatnote"}}
}}{{#switch:pair
|c|close =
|e|empty|s|single|v|void = />
|o|open = >
|p|pair = {{#ifeq:div|!--||>}}...
}}{{#switch:pair
|e|empty|s|single|v|void
|o|open =
|c|close
|p|pair = {{#ifeq:div|!--|-->|</div>}}
}}
. Options are provided in the options table. Options include:
- options.extraclasses - a string of extra classes to provide
- options.selfref - if this is not nil or false, adds the class "selfref", used to denote self-references to Wikipedia (see Template:Selfref))
The CSS of the hatnote class is defined in Module:Hatnote/styles.css.
- Example 1
<syntaxhighlight lang="lua"> mHatnote._hatnote('This is a hatnote.') </syntaxhighlight>
Produces:
{{#switch:pair
|c|close =
|e|empty|s|single|v|void
|o|open
|p|pair = <{{#if:|div|div}}{{#if:class="hatnote"| class="hatnote"}}
}}{{#switch:pair
|c|close = This is a hatnote.
|e|empty|s|single|v|void = />
|o|open = >This is a hatnote.
|p|pair = {{#ifeq:div|!--||>}}This is a hatnote.
}}{{#switch:pair
|e|empty|s|single|v|void
|o|open =
|c|close
|p|pair = {{#ifeq:div|!--|-->|</div>}}
}}
Displays as:
- Example 2
<syntaxhighlight lang="lua"> mHatnote._hatnote('This is a hatnote.', {extraclasses = 'boilerplate seealso', selfref = true}) </syntaxhighlight>
Produces:
{{#switch:pair
|c|close =
|e|empty|s|single|v|void
|o|open
|p|pair = <{{#if:|div|div}}{{#if:class="hatnote boilerplate seealso selfref"| class="hatnote boilerplate seealso selfref"}}
}}{{#switch:pair
|c|close = This is a hatnote.
|e|empty|s|single|v|void = />
|o|open = >This is a hatnote.
|p|pair = {{#ifeq:div|!--||>}}This is a hatnote.
}}{{#switch:pair
|e|empty|s|single|v|void
|o|open =
|c|close
|p|pair = {{#ifeq:div|!--|-->|</div>}}
}}
Displayed as:
Find namespace id
<syntaxhighlight lang="lua"> mHatnote.findNamespaceId(link, removeColon) </syntaxhighlight>
Finds the namespace id of the string link, which should be a valid page name, with or without the section name. This function will not work if the page name is enclosed with square brackets. When trying to parse the namespace name, colons are removed from the start of the link by default. This is helpful if users have specified colons when they are not strictly necessary. If you do not need to check for initial colons, set removeColon to false.
- Examples
- <syntaxhighlight lang="lua" class="" id="" style="" inline="1">mHatnote.findNamespaceId('Lion')</syntaxhighlight> → 0
- <syntaxhighlight lang="lua" class="" id="" style="" inline="1">mHatnote.findNamespaceId('Category:Lions')</syntaxhighlight> → 14
- <syntaxhighlight lang="lua" class="" id="" style="" inline="1">mHatnote.findNamespaceId(':Category:Lions')</syntaxhighlight> → 14
- <syntaxhighlight lang="lua" class="" id="" style="" inline="1">mHatnote.findNamespaceId(':Category:Lions', false)</syntaxhighlight> → 0 (the namespace is detected as ":Category", rather than "Category")
Make wikitext error
<syntaxhighlight lang="lua"> mHatnote.makeWikitextError(msg, helpLink, addTrackingCategory) </syntaxhighlight>
Formats the string msg as a red wikitext error message, with optional link to a help page helpLink. Normally this function also adds {{#if:|{{{name}}}|Category:Hatnote templates with errors}} (0). To suppress categorization, pass false
as third parameter of the function (addTrackingCategory
).
Examples:
- <syntaxhighlight lang="lua" class="" id="" style="" inline="1">mHatnote.makeWikitextError('an error has occurred')</syntaxhighlight> → Error: an error has occurred.
- <syntaxhighlight lang="lua" class="" id="" style="" inline="1">mHatnote.makeWikitextError('an error has occurred', 'Template:Example#Errors')</syntaxhighlight> → Error: an error has occurred (help).
Examples
For an example of how this module is used in other Lua modules, see Module:Labelled list hatnote