(→Lua patterns: Updated patterns here in docs to reflect changes to the regex of Module:Infobox3cols; used {{tl}}) |
m (1 revision imported) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{Used in system|in [[MediaWiki:Abusefilter-warning-DS]]}} | ||
{{ | {{Module rating|p}} | ||
{{Lua|Module:If preview|noprotcat=yes}} | {{Lua|Module:If preview|noprotcat=yes}} | ||
Line 7: | Line 7: | ||
== Usage == | == Usage == | ||
=== Basic usage === | === Basic usage === | ||
< | <syntaxhighlight lang="wikitext"> | ||
{{#invoke: | {{#invoke:Check for unknown parameters|check | ||
|unknown=[[Category:Some tracking category]] | |unknown=[[Category:Some tracking category]] | ||
|arg1|arg2|arg3|argN}} | |arg1|arg2|arg3|argN}} | ||
</ | </syntaxhighlight> | ||
or to sort the entries in the tracking category by parameter with a preview error message | or to sort the entries in the tracking category by parameter with a preview error message | ||
< | <syntaxhighlight lang="wikitext"> | ||
{{#invoke: | {{#invoke:Check for unknown parameters|check | ||
|unknown=[[Category:Some tracking category|_VALUE_]] | |unknown=[[Category:Some tracking category|_VALUE_]] | ||
|preview=unknown parameter "_VALUE_" | |preview=unknown parameter "_VALUE_" | ||
|arg1|arg2|...|argN}} | |arg1|arg2|...|argN}} | ||
</ | </syntaxhighlight> | ||
or for an explicit red error message | or for an explicit red error message | ||
< | <syntaxhighlight lang="wikitext"> | ||
{{#invoke: | {{#invoke:Check for unknown parameters|check | ||
|unknown=<span class="error">Sorry, I don't recognize _VALUE_</span> | |unknown=<span class="error">Sorry, I don't recognize _VALUE_</span> | ||
|arg1|arg2|...|argN}} | |arg1|arg2|...|argN}} | ||
</ | </syntaxhighlight> | ||
Here, <code>arg1</code>, <code>arg2</code>, ..., <code>argN</code>, are the known parameters. Unnamed (positional) parameters can be added too: <code><nowiki>|1|2|argname1|argname2|...</nowiki></code>. Any parameter which is used, but not on this list, will cause the module to return whatever is passed with the <code>unknown</code> parameter. The <code>_VALUE_</code> keyword, if used, will be changed to the name of the parameter. This is useful for either sorting the entries in a tracking category, or for provide more explicit information. | Here, <code>arg1</code>, <code>arg2</code>, ..., <code>argN</code>, are the known parameters. Unnamed (positional) parameters can be added too: <code><nowiki>|1|2|argname1|argname2|...</nowiki></code>. Any parameter which is used, but not on this list, will cause the module to return whatever is passed with the <code>unknown</code> parameter. The <code>_VALUE_</code> keyword, if used, will be changed to the name of the parameter. This is useful for either sorting the entries in a tracking category, or for provide more explicit information. | ||
By default, the module makes no distinction between a defined-but-blank parameter and a non-blank parameter. That is, both unlisted {{ | By default, the module makes no distinction between a defined-but-blank parameter and a non-blank parameter. That is, both unlisted {{Para|foo|x}} and {{Para|foo}} are reported. To only track non-blank parameters use {{Para|ignoreblank|1}}. | ||
By default, the module ignores blank positional parameters. That is, an unlisted {{ | By default, the module ignores blank positional parameters. That is, an unlisted {{Para|2}} is ignored. To ''include'' blank positional parameters in the tracking use {{Para|showblankpositional|1}}. | ||
=== Lua patterns === | === Lua patterns === | ||
This module supports [[:mw:Extension:Scribunto/Lua reference manual#Patterns|Lua patterns]] (similar to [[regular expression]]s), which are useful when there are many known parameters which use a systematic pattern. For example, | This module supports [[:mw:Extension:Scribunto/Lua reference manual#Patterns|Lua patterns]] (similar to [[regular expression]]s), which are useful when there are many known parameters which use a systematic pattern. For example, <code>[[Module:Infobox3cols|Infobox3cols]]</code> uses | ||
< | <syntaxhighlight lang="lua"> | ||
regexp1 = "header[%d]+", | |||
regexp2 = "label[%d]+", | |||
regexp3 = "data[%d]+[abc]?", | |||
regexp4 = "class[%d]+[abc]?", | |||
regexp5 = "rowclass[%d]+", | |||
regexp6 = "rowstyle[%d]+", | |||
regexp7 = "rowcellstyle[%d]+", | |||
</ | </syntaxhighlight> | ||
to match all parameters of the form <code>headerNUM</code>, <code>labelNUM</code>, <code>dataNUM</code>, <code>dataNUMa</code>, <code>dataNUMb</code>, <code>dataNUMc</code>, ..., <code>rowcellstyleNUM</code>, where NUM is a string of digits. | to match all parameters of the form <code>headerNUM</code>, <code>labelNUM</code>, <code>dataNUM</code>, <code>dataNUMa</code>, <code>dataNUMb</code>, <code>dataNUMc</code>, ..., <code>rowcellstyleNUM</code>, where NUM is a string of digits. | ||
== Example == | == Example == | ||
< | <syntaxhighlight lang="wikitext"> | ||
{{Infobox | {{Infobox | ||
| above = {{{name|}}} | | above = {{{name|}}} | ||
Line 60: | Line 60: | ||
end infobox, start tracking | end infobox, start tracking | ||
-->{{#invoke:Check for unknown parameters|check | -->{{#invoke:Check for unknown parameters|check | ||
| unknown = {{ | | unknown = {{Main other|[[Category:Some tracking category|_VALUE_]]}} | ||
| preview = unknown parameter "_VALUE_" | | preview = unknown parameter "_VALUE_" | ||
| name | | name | ||
Line 66: | Line 66: | ||
| website | | website | ||
}} | }} | ||
</ | </syntaxhighlight> | ||
==Call from within Lua code== | ==Call from within Lua code== | ||
Line 72: | Line 72: | ||
==See also== | ==See also== | ||
* {{ | * {{Clc|Unknown parameters}} (category page can have header {{tl|Unknown parameters category}}) | ||
* [[Template:Checks for unknown parameters]] – adds documentation to templates using this module | * [[Template:Checks for unknown parameters]] – adds documentation to templates using this module | ||
* [[Module:Check for deprecated parameters]] – similar module that checks for deprecated parameters | * [[Module:Check for deprecated parameters]] – similar module that checks for deprecated parameters | ||
Line 82: | Line 82: | ||
* [[User:Bamyers99/TemplateParametersTool]] - A tool for checking usage of template parameters | * [[User:Bamyers99/TemplateParametersTool]] - A tool for checking usage of template parameters | ||
<includeonly>{{ | <includeonly>{{Sandbox other|| | ||
<!-- Categories go here and interwikis go in Wikidata. --> | <!-- Categories go here and interwikis go in Wikidata. --> | ||
[[Category:Modules that add a tracking category]] | [[Category:Modules that add a tracking category]] | ||
}}</includeonly> | }}</includeonly> |
Latest revision as of 19:50, 8 July 2023
This Lua module is used in MediaWiki:Abusefilter-warning-DS, and on approximately 20,700,000 pages, or roughly 761309% 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. |
This module depends on the following other modules: |
This module may be appended to a template to check for uses of unknown parameters. Unlike many other modules, this module is not implemented by a template.
Usage
Basic usage
<syntaxhighlight lang="wikitext">
</syntaxhighlight> or to sort the entries in the tracking category by parameter with a preview error message <syntaxhighlight lang="wikitext">
</syntaxhighlight> or for an explicit red error message <syntaxhighlight lang="wikitext">
</syntaxhighlight>
Here, arg1
, arg2
, ..., argN
, are the known parameters. Unnamed (positional) parameters can be added too: |1|2|argname1|argname2|...
. Any parameter which is used, but not on this list, will cause the module to return whatever is passed with the unknown
parameter. The _VALUE_
keyword, if used, will be changed to the name of the parameter. This is useful for either sorting the entries in a tracking category, or for provide more explicit information.
By default, the module makes no distinction between a defined-but-blank parameter and a non-blank parameter. That is, both unlisted |foo=x
and |foo=
are reported. To only track non-blank parameters use |ignoreblank=1
.
By default, the module ignores blank positional parameters. That is, an unlisted |2=
is ignored. To include blank positional parameters in the tracking use |showblankpositional=1
.
Lua patterns
This module supports Lua patterns (similar to regular expressions), which are useful when there are many known parameters which use a systematic pattern. For example, Infobox3cols
uses
<syntaxhighlight lang="lua">
regexp1 = "header[%d]+",
regexp2 = "label[%d]+",
regexp3 = "data[%d]+[abc]?",
regexp4 = "class[%d]+[abc]?",
regexp5 = "rowclass[%d]+",
regexp6 = "rowstyle[%d]+",
regexp7 = "rowcellstyle[%d]+",
</syntaxhighlight>
to match all parameters of the form headerNUM
, labelNUM
, dataNUM
, dataNUMa
, dataNUMb
, dataNUMc
, ..., rowcellstyleNUM
, where NUM is a string of digits.
Example
<syntaxhighlight lang="wikitext"> </syntaxhighlight>
Call from within Lua code
See the end of Module:Rugby box for a simple example or Module:Infobox3cols or Module:Flag for more complicated examples.
See also
- Category:Unknown parameters (0) (category page can have header {{Unknown parameters category}})
- Template:Checks for unknown parameters – adds documentation to templates using this module
- Module:Check for deprecated parameters – similar module that checks for deprecated parameters
- Module:Check for clobbered parameters – module that checks for conflicting parameters
- Module:TemplatePar – similar function (originally from dewiki)
- Template:Parameters and Module:Parameters – generates a list of parameter names for a given template
- Project:TemplateData based template parameter validation
- Module:Parameter validation checks a lot more
- User:Bamyers99/TemplateParametersTool - A tool for checking usage of template parameters