→Example: alphabetize parameters for sanity, as the script does |
m 1 revision imported |
||
Line 1: | Line 1: | ||
This module may be appended to a template to check for uses of unknown parameters. | |||
== Usage == | == Usage == | ||
=== | === Basic usage === | ||
<pre> | |||
{{#invoke:check for unknown parameters|check | |||
|unknown=[[Category:Some tracking category]] | |||
|arg1|arg2|arg3|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. 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 {{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 {{para|2}} is ignored. To ''include'' blank positional parameters in the tracking use {{para|showblankpositional|1}}. | |||
== | === Lua patterns === | ||
This module supports [[Extension:Scribunto/Lua reference manual#Patterns|Lua patterns]] which are useful when there are many known parameters which use a systematic pattern. For example, [[:en:template:infobox3cols]] uses | |||
<pre> | |||
| regexp1 = header[%d][%d]* | |||
* | | regexp2 = label[%d][%d]* | ||
* | | regexp3 = data[%d][%d]*[abc]? | ||
| regexp4 = class[%d][%d]*[abc]? | |||
| regexp5 = rowclass[%d][%d]* | |||
| regexp6 = rowstyle[%d][%d]* | |||
| regexp7 = rowcellstyle[%d][%d]* | |||
</pre> | |||
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 == | ||
< | <pre> | ||
{{Infobox | {{Infobox | ||
| above = {{{name|}}} | | above = {{{name|}}} | ||
Line 54: | Line 56: | ||
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_" | height | | | preview = unknown parameter "_VALUE_" | ||
| name | |||
| height | weight | |||
| website | |||
}} | }} | ||
</ | </pre> | ||
Revision as of 04:00, 30 June 2024
This module may be appended to a template to check for uses of unknown parameters.
Usage
Basic usage
{{#invoke:check for unknown parameters|check |unknown=[[Category:Some tracking category]] |arg1|arg2|arg3|argN}}
or to sort the entries in the tracking category by parameter with a preview error message
{{#invoke:check for unknown parameters|check |unknown=[[Category:Some tracking category|_VALUE_]] |preview=unknown parameter "_VALUE_" |arg1|arg2|...|argN}}
or for an explicit red error message
{{#invoke:check for unknown parameters|check |unknown=<span class="error">Sorry, I don't recognize _VALUE_</span> |arg1|arg2|...|argN}}
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 which are useful when there are many known parameters which use a systematic pattern. For example, en:template:infobox3cols uses
| regexp1 = header[%d][%d]* | regexp2 = label[%d][%d]* | regexp3 = data[%d][%d]*[abc]? | regexp4 = class[%d][%d]*[abc]? | regexp5 = rowclass[%d][%d]* | regexp6 = rowstyle[%d][%d]* | regexp7 = rowcellstyle[%d][%d]*
to match all parameters of the form headerNUM
, labelNUM
, dataNUM
, dataNUMa
, dataNUMb
, dataNUMc
, ..., rowcellstyleNUM
, where NUM is a string of digits.
Example
{{Infobox | above = {{{name|}}} | label1 = Height | data1 = {{{height|}}} | label2 = Weight | data2 = {{{weight|}}} | label3 = Website | data3 = {{{website|}}} }}<!-- end infobox, start tracking -->{{#invoke:Check for unknown parameters|check | unknown = {{main other|[[Category:Some tracking category|_VALUE_]]}} | preview = unknown parameter "_VALUE_" | name | height | weight | website }}