Module:Check for unknown parameters/doc: Difference between revisions

Content deleted Content added
Usage: support |reason
m Reverted edits by 201.162.168.35 (talk) (HG) (3.4.13)
 
(88 intermediate revisions by 48 users not shown)
Line 1:
{{Used in system}}
{{High-risk|4500000+}}
{{moduleModule rating|p}}
{{cascade-protected template|page=module}}
<!-- Categories go at the bottom of this page and interwikis go in Wikidata. -->
{{Lua|Module:If preview|noprotcat=yes}}
 
This'''Module:Check for unknown parameters''' is used to check for uses of unknown parameters in a template or module. It may be appended to a template toat checkthe forend usesor ofcalled unknowndirectly parametersfrom a module.
 
== Usage ==
=== BasicFrom usagea template ===
To sort entries into a tracking category by parameter, use:
<pre>
* {{#invoke:checkmlx|Check for unknown parameters|check|unknown{{=}}<nowiki>[</nowiki>[Category:Some tracking category|_VALUE_]]|arg1|arg2|arg3|argN}}
|unknown=[[Category:Some tracking category]]
|arg1|arg2|...|argN}}
</pre>
or to sort the entries in the tracking category by parameter with a preview error message
<pre>
{{#invoke:check for unknown parameters|check
|unknown=[[Category:Some tracking category|_VALUE_]]
|preview=unknown parameter "_VALUE_"
|arg1|arg2|...|argN}}
</pre>
or for an explicit red error message
<pre>
{{#invoke:check for unknown parameters|check
|unknown=<span class="error">Sorry, I don't recognize _VALUE_</span>
|arg1|arg2|...|argN}}
</pre>
Here, <code>arg1</code>, <code>arg2</code>, ..., <code>argN</code>, are the known parameters. 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.
 
To sort the entries into a tracking category by parameter with a preview error message, use:
By default, the module makes no distinction between a defined-but-blank parameter and a non-blank parameter. To only track non-blank parameters use {{para|ignoreblank|1}}.
* {{mlx|Check for unknown parameters|check|unknown{{=}}<nowiki>[</nowiki>[Category:Some tracking category|_VALUE_]]|preview{{=}}unknown parameter "_VALUE_"|arg1|arg2|...|argN}}
 
For an explicit red error message, use:
By default, the module ignores blank positional parameters. To include blank positional parameters in the tracking use {{para|showblankpositional|1}}.
* {{mlx|Check for unknown parameters|check|unknown{{=}}&lt;span class{{=}}"error">Sorry, I don't recognize _VALUE_&lt;/span>|arg1|arg2|...|argN}}
 
To use Lua patterns, use:
===Include <samp>reason</samp>===
* {{mlx|Check for unknown parameters|check|unknown{{=}}<nowiki>[</nowiki>[Category:Some tracking category|_VALUE_]]|preview{{=}}unknown parameter "_VALUE_"|arg1|arg2|...|argN|regexp1{{=}}header[%d]+|regexp2{{=}}date[1-9]}}
Unless there's a very good reason not to, the parameter <code><nowiki>|reason</nowiki></code> should always be supported. This is used as a de facto standard, across all templates, as a way to include an explanatory note (e.g., why the template was placed, in any case in which that isn't obvious) without affecting the displayed output in any way (usually). If you do not include <code><nowiki>|reason</nowiki></code> among permissible values, then this module with throw a bogus error when people include a {{para|reason}}. A few templates (e.g. {{tlx|Rm}}) directly implement a {{para|reason}} parameter that actually does something, but it most cases it is a pseudo-parameter that does not actually appear in the template code, and is used in lieu of messy HTML comments.
 
===From Lua patternsa module===
To call from a module, use:
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, [[template:infobox3cols]] uses
<syntaxhighlight lang="lua">
<pre>
local checkForUnknownParameters = require("Module:Check for unknown parameters")
| regexp1 = header[%d][%d]*
local result = checkForUnknownParameters._check(validArgs, args)
| regexp2 = label[%d][%d]*
</syntaxhighlight>
| regexp3 = data[%d][%d]*[abc]?
 
| regexp4 = class[%d][%d]*[abc]?
Where the first set of args are the module args below and the second set of args are the parameters that are checked.
| regexp5 = rowclass[%d][%d]*
 
| regexp6 = rowstyle[%d][%d]*
== Parameters ==
| regexp7 = rowcellstyle[%d][%d]*
* <code>arg1</code>, <code>arg2</code>, ..., <code>argN</code>, are the known parameters.
</pre>
* Unnamed (positional) parameters can be added too: <code>|1|2|arg1|arg2|...</code>.
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.
* [[:mw:Extension:Scribunto/Lua reference manual#Patterns|Lua patterns]] (similar to [[regular expression]]s) usage with parameters is also supported (such as: {{para|regexp1|header[%d]+}}, {{para|regexp2|date[1-9]}}, {{para|regexp3|data[%d]+[abc]?}}). This is useful when there are many known parameters which use a systematic pattern.
* {{para|unknown}} – what happens when an unknown parameter is used. Typically use either a tracking category to place pages that use unknown parameters, or an error.
* {{para|preview}} – the text to be displayed when in preview mode and an unknown parameter is used.
* 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.
* {{para|ignoreblank|1}} – 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}}.
* {{para|showblankpositional|1}} – by default, the module ignores blank positional parameters. That is, an unlisted {{para|2}} is ignored. To {{em|include}} blank positional parameters in the tracking use {{para|showblankpositional|1}}.
 
== Example ==
<syntaxhighlight lang="wikitext">
<pre>
{{Infobox
| above = {{{name|}}}
Line 63 ⟶ 55:
end infobox, start tracking
-->{{#invoke:Check for unknown parameters|check
| unknown = {{Main other|[[Category:Some tracking category|_VALUE_]]}}
| preview = unknown parameter "_VALUE_" | height | name | website | weight
| name
| height | weight
| website
}}
</syntaxhighlight>
</pre>
 
==Call from within Lua code==
==Templates invoking this module==
See the end of [[Module:Rugby box]] for a simple example or [[Module:Infobox3cols]] or [[Module:Flag]] for more complicated examples.
 
The following is a list of some of the templates which invoke this module, with the associated category for each.
 
{| class="wikitable sortable collapsible collapsed" style="font-size:88%"
! colspan="2" class="unsortable" style="background-color:#ddd" | List of templates which invoke "Module:Check for unknown parameters"
|-
! Template !! Tracking/maintenance category
|-
| {{ti|Authority control}} || {{cl|Pages using authority control with parameters|count=yes}}
|-
| {{ti|Aviation accidents and incidents}} || {{cl|Pages using aviation accidents and incidents with unknown parameters|count=yes}}
|-
| {{ti|Country topics}} || {{cl|Pages using country topics with unknown parameters|count=yes}}
|-
| [[Template:Infobox3cols]] || [[:Category:Pages using infobox3cols with undocumented parameters]]
|-
| [[Template:Infobox academic division]] || [[:Category:Pages using infobox academic division with unknown parameters]]
|-
| [[Template:Infobox amateur wrestler]] || [[:Category:Pages using infobox amateur wrestler with unknown parameters]]
|-
| [[Template:Infobox anatomy]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox artery]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox astronaut]] || [[:Category:Pages using infobox astronaut with unknown parameters]]
|-
| [[Template:Infobox award]] || [[:Category:Pages using infobox award with unknown parameters]]
|-
| [[Template:Infobox bone]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox brain]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox broadcast]] || [[:Category:Pages using infobox broadcast with unknown parameters]]
|-
| [[Template:Infobox city Japan]] || [[:Category:Pages using infobox city Japan with unknown parameters]]
|-
| [[Template:Infobox Daytona 500]] || [[:Category:Pages using infobox Daytona 500 with unknown parameters]]
|-
| [[Template:Infobox embryology]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox event]] || [[:Category:Pages using infobox event with unknown parameters]]
|-
| [[Template:Infobox Grand Prix race report]] || [[:Category:Pages using infobox Grand Prix race report with unknown parameters]]
|-
| [[Template:Infobox Hindu temple]] || [[:Category:Pages using infobox Hindu temple with deprecated parameters]]
|-
| [[Template:Infobox horseraces]] || [[:Category:Pages using infobox horseraces with unknown parameters]]
|-
| [[Template:Infobox language]] || [[:Category:Language articles with unsupported infobox fields]]
|-
| [[Template:Infobox language family]] || [[:Category:Language articles with unsupported infobox fields]]
|-
| [[Template:Infobox ligament]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox lymph]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox military installation]] || [[:Category:Pages using infobox military installation with deprecated syntax]]
|-
| [[Template:Infobox Minor League Baseball]] || [[:Category:Pages using infobox Minor League Baseball with unknown parameters]]
|-
| [[Template:Infobox muscle]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox musical artist]] || [[:Category:Pages using Template:Infobox musical artist with unknown parameters]]
|-
| [[Template:Infobox NASCAR race report]] || [[:Category:Pages using infobox NASCAR race report with unknown parameters]]
|-
| [[Template:Infobox nerve]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox neuron]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Infobox political party]] || [[:Category:Political party articles using deprecated parameters]]
|-
| [[Template:Infobox public transit]] || [[:Category:Public transit articles with unsupported infobox fields]]
|-
| [[Template:Infobox restaurant]] || [[:Category:Pages using infobox restaurant with unsupported parameters]]
|-
| [[Template:Infobox school district]] || [[:Category:Pages using infobox school district with unsupported parameters]]
|-
| [[Template:Infobox settlement]] || [[:Category:Settlement articles requiring maintenance]]
|-
| [[Template:Infobox speedway rider]] || [[:Category:Pages using Infobox Speedway rider with unknown parameters]]
|-
| [[Template:Infobox sports rivalry]] || [[:Category:Pages using infobox sports rivalry with unknown parameters]]
|-
| [[Template:Infobox vein]] || [[:Category:Medicine infobox template using unsupported parameters]]
|-
| [[Template:Multiple issues]] || [[:Category:Pages using multiple issues with incorrect parameters]]
|-
| [[Template:WikiProject Africa]] || [[:Category:Africa articles with invalid parameters]]
|-
| [[Template:WikiProject Central America]] || [[:Category:Central America articles with invalid parameters]]
|-
| [[Template:WikiProject United States]] || [[:Category:United States articles with invalid parameters]]
|-
| [[Template:Year box]] || [[:Category:Pages using year box with unknown parameters]]
|}
For a more up-to-date list, [//en.wikipedia.org/w/index.php?title=Special:Search&limit=500&offset=0&ns10=1&search=insource%3A%2FCheck+for+unknown+parameters%2F search for the "check for unknown parameters" within the template namespace].
 
==See also==
* {{Clc|Unknown parameters}} (category page can have header {{tl|Unknown parameters category}})
* [[:module:TemplatePar]] (originally from dewiki)
* [[Module:Params]] – for complex operations involving parameters
* [[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
* [[:he:Module:ParamValidator]] - parameter validation system on hewiki, relies on TemplateData. some of the things checked are:
* [[Module:Parameter validation]] checks a lot more
**use of undeclared parameters, parameters marked in templatedata "deprecated"
* [[User:Bamyers99/TemplateParametersTool]] - A tool for checking usage of template parameters
** mistyped (mainly, params declared in templatedata as "number" receiving non-numerical value)
**missing parameters marked in TemplateData as "required"
**understands aliases, and warns when more than one alias of a parameter is used
** quite a lot more
 
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandboxSandbox other||
<!-- Categories go here and interwikis go in Wikidata. -->
[[Category:Modules that add a tracking category]]
 
[[Category:Template metamodules]]
}}</includeonly>
<noinclude>
[[Category:Module documentation pages]]
</noinclude>