This is an auxiliary module intended to be invoked by templates; it permits templates to support an arbitrary set of parameters by repeating a block of wikitext
| This module is rated as alpha. It is ready for limited use and third-party feedback. It may be used on a small number of pages, but should be monitored closely. Suggestions for new features or adjustments to input and output are welcome. |
This is an auxiliary module intended to be invoked by templates; it permits templates to support an arbitrary set of parameters by repeating a block of wikitext multiple times. This module works with named as well as unnamed parameters, can handle multiple named parameters at the same time, and supports defaults,
If you want to use this module in your template: take the block of wikitext that you want to be repeated for an arbitrary set of parameters, wrap it in <nowiki>, and pass that as the module's first parameter; then, choose a "base" parameter such that the module will stop repeating the wikitext if the parameter wasn't defined by the user, and pass its name as the second parameter. Example usage:
...{{#invoke:ArgRest|main|<nowiki>...{{{named-2-a}}}...{{{named-2-b|default}}}...</nowiki>|named-2-a}}Afterwards, the module will "fill in" parameters with larger numbers than the ones originally given; i.e. in the above example, the module would allow the containing template to receive parameters {{{named-3-a}}}, {{{named-3-b}}}, {{{named-4-a}}}, etc.
Note: You MUST wrap the first parameter in <nowiki>; otherwise, Mediawiki processes all wikitext and HTML syntax before the module receives it, which makes it impossible to use pattern matching due to the resulting pollution. If you don't, the module will give this error:
If the (imaginary) template {{PlusMinusLoop}} has the following code:
{{{plus1}}} - {{{minus1}}}{{#invoke:ArgRest|main|<nowiki> + {{{plus2}}} - {{{minus2|5}}}</nowiki>|plus2}}
then
{{PlusMinusLoop|plus1=0|minus1=1|plus2=1|minus2=2|plus3=3|plus5=21}}
will yield 0 - 1 + 1 - 2 + 3 - 5. The - 5 is present because |minus3 defaulted to 5, but 21 never appears because, although |plus5 is defined, |plus4 isn't, so the module halts there.
There are a few templates that can used with this module to help it adapt to certain scenarios:
{{Call wikitext|sourceCode=<nowiki>{{#invoke:ArgRest|main|<nowiki>{{{1}}}</nowiki>|1}}</nowiki>|foo|bar}} outputs foobar.{{enum{{#invoke:ArgRest|main|<nowiki>|{{{1}}}</nowiki>|1}}}}), it will fail to do so because the outer template won't get processed after ArgRest is done parsing. This template fixes this by invoking the parser to process the outer template.
{{Expand wikitext|{{enum{{#invoke:ArgRest|main|<nowiki>|{{{1}}}</nowiki>|1}}}}}} called with the arguments {{__TEMPLATE__|foo|bar|Baz}} would output foo, bar and baz where as one defined as {{enum{{#invoke:ArgRest|main|<nowiki>|{{{1}}}</nowiki>|1}}}} would output {{enum|foo|bar|baz}}.Be wary when using ArgRest wrapped inside of an outer template; it hasn't quite been thoroughly tested in such scenarios, and should be watched carefully when it is used this way.
This module currently suffers from a few limitations:
{{{parameter1| {{{alias1|default}}} }}} will fail to be recognized by the module as a parameter.{{{named-3-1}}} as equivalent to {{{named-3-3}}}....{{{1}}}...{{{2}}}... won't work.Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.