Content deleted Content added
Prepare the documentation for the ‘new’ modifier – currently commented out in the code |
Update the documentation; +{{In use}} |
||
Line 8:
| textstyle = padding: .85em; text-align: center;
}}
{{In use}}
The <syntaxhighlight lang="wikitext" inline>{{#invoke:params}}</syntaxhighlight> module is designed to be adopted by those templates that want to have a deep control of their parameters. It is particularly useful to [[variadic template]]s, to which it offers the possibility to count, list, map and propagate the parameters received without knowing their number in advance.
Line 289 ⟶ 291:
| titlestyle = font-weight:normal; font-size:100%;
| title = Function <code>list</code> <span style="nowrap">({{module:params/doc/link to the code|list|code}})</span>
| label1 = Num. of arguments | data1 =
| label2 = [[#
| label3 = Relevant [[#setting|runtime variables]] | data3 = <code>h</code>, <code>p</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
| header4 = See also
Line 319 ⟶ 321:
| titlestyle = font-weight:normal; font-size:100%;
| title = Function <code>list_values</code> <span style="nowrap">({{module:params/doc/link to the code|list_values|code}})</span>
| label1 = Num. of arguments | data1 =
| label2 = [[#
| label3 = Often preceeded by | data3 = <code>[[#sequential|sequential]]</code>
| label4 = Relevant [[#setting|runtime variables]] | data4 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
Line 343 ⟶ 345:
: '''Values of parameters passed:''' A giant owl-like creature; A large feline inhabiting Bodmin Moor; A sea serpent.
{{vpad|1.5em|clear=none}}
=== <code>coins</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Function <code>coins</code> <span style="nowrap">({{module:params/doc/link to the code|coins|code}})</span>
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = [[#all_sorted|Sortable]] | data2 = Yes
| label3 = Often preceeded by | data3 = <code>[[#sequential|sequential]]</code>
| label4 = Relevant [[#setting|runtime variables]] | data4 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
| header5 = See also
| data6 = <code>[[#unique_coins|unique_coins]]</code>, <code>[[#list|list]]</code>, <code>[[#value_of|value_of]]</code>, {{mlx|separated entries|}}
}}
; Brief
: ''Associate custom strings to possible parameter values and list the custom string whose associated value is present''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|coins|[first coin = value 1]|[second coin = value 2]|[...]|[last coin = value N]}}</syntaxhighlight>
This function is identical to the <code>[[#unique_coins|unique_coins]]</code> function, except that it allows the repetition of identical flags. See there for more information.
{{vpad|1.5em|clear=none}}
=== <code>unique_coins</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Function <code>unique_coins</code> <span style="nowrap">({{module:params/doc/link to the code|unique_coins|code}})</span>
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = [[#all_sorted|Sortable]] | data2 = Yes
| label3 = Often preceeded by | data3 = <code>[[#sequential|sequential]]</code>
| label4 = Relevant [[#setting|runtime variables]] | data4 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
| header5 = See also
| data6 = <code>[[#coins|coins]]</code>, <code>[[#list|list]]</code>, <code>[[#value_of|value_of]]</code>, {{mlx|separated entries|}}
}}
; Brief
: ''Associate custom strings to possible parameter values and list the custom string whose associated value is present, but not more than once''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|unique_coins|[first coin = value 1]|[second coin = value 2]|[...]|[last coin = value N]}}</syntaxhighlight>
This function is used to detect the existence of flag parameters. For this reason, it is almost always accompanied by the <code>[[#sequential|sequential]]</code> modifier. For a similar function that allows the repetition of identical flags, see the <code>[[#coins|coins]]</code> function.
If the <code>[[#setting|setting]]</code> modifier was not placed earlier, this function will not add delimiters, but will return an indistinct blob of text in which values are sticked to each other. A header (<code>h</code>), an iteration delimiter (<code>i</code>), a last iteration delimiter (<code>l</code>), a footer (<code>f</code>), and a fallback text (<code>n</code>) can be declared via <code>[[#setting|setting]]</code> – the string assigned to the key-value pair delimiter (<code>p</code>) will be ignored.
A typical use case of this function is that of constructing [[URL]]s. For example, the following template named <syntaxhighlight lang="wikitext" inline>{{example template}}</syntaxhighlight> checks for the <code>html</code>, <code>xml</code>, <code>comments</code> and <code>removenowiki</code> flags in order to append respectively the following strings to the final URL: <code>&wpGenerateRawHtml=1</code>, <code>&wpGenerateXml=1</code>, <code>&wpRemoveComments=0</code>, <code>&wpRemoveNowiki=1</code>.
<syntaxhighlight lang="wikitext">{{#if:{{{input|}}}
| <span class="plainlinks">[{{fullurl:Special:ExpandTemplates|wpInput={{urlencode:{{{input}}}|QUERY}}{{#if:{{{title|}}}|&wpContextTitle={{urlencode|{{{title}}}|QUERY}}}}{{#invoke:params|sequential|unique_coins
| html = &wpGenerateRawHtml=1
| xml = &wpGenerateXml=1
| comments = &wpRemoveComments=0
| removenowiki = &wpRemoveNowiki=1
}}}} {{#if:{{{label|}}}|{{{label|}}}|Expand <code>{{{input}}}</code>}}]</span>
| {{Error|Error: The {{para|input}} parameter is missing.}}
}}</syntaxhighlight>
And so, when transcluded as,
<syntaxhighlight lang="wikitext">{{example template|comments|xml
| input = Hello world {<nowiki />{#time:r{{!}}now}<nowiki />}|
}}</syntaxhighlight>
it will generate the following output:
: {{module:params/doc/examples/link to expanded template|comments|xml
| input = Hello world {<nowiki />{#time:r{{!}}now}<nowiki />}|
}}
A copy of the example above is available at {{{{rel|Module:Params/doc/examples/link to expanded template}}}}.
{{vpad|1.5em|clear=none}}
Line 351 ⟶ 423:
| title = Function <code>call_for_each</code> <span style="nowrap">({{module:params/doc/link to the code|call_for_each|code}})</span>
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = [[#
| label3 = Relevant [[#setting|runtime variables]] | data3 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
| header4 = See also
Line 388 ⟶ 460:
| title = Function <code>invoke_for_each</code> <span style="nowrap">({{module:params/doc/link to the code|invoke_for_each|code}})</span>
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = [[#
| label3 = Relevant [[#setting|runtime variables]] | data3 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
| header4 = See also
Line 422 ⟶ 494:
| title = Function <code>magic_for_each</code> <span style="nowrap">({{module:params/doc/link to the code|magic_for_each|code}})</span>
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = [[#
| label3 = Relevant [[#setting|runtime variables]] | data3 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
| header4 = See also
Line 446 ⟶ 518:
| title = Function <code>call_for_each_value</code> <span style="nowrap">({{module:params/doc/link to the code|call_for_each_value|code}})</span>
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = [[#
| label3 = Often preceeded by | data3 = <code>[[#sequential|sequential]]</code>
| label4 = Relevant [[#setting|runtime variables]] | data4 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
Line 481 ⟶ 553:
| title = Function <code>invoke_for_each_value</code> <span style="nowrap">({{module:params/doc/link to the code|invoke_for_each_value|code}})</span>
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = [[#
| label3 = Often preceeded by | data3 = <code>[[#sequential|sequential]]</code>
| label4 = Relevant [[#setting|runtime variables]] | data4 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
Line 516 ⟶ 588:
| title = Function <code>magic_for_each_value</code> <span style="nowrap">({{module:params/doc/link to the code|magic_for_each_value|code}})</span>
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = [[#
| label3 = Often preceeded by | data3 = <code>[[#sequential|sequential]]</code>
| label4 = Relevant [[#setting|runtime variables]] | data4 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
Line 552 ⟶ 624:
| label1 = Num. of arguments | data1 = ''Ad libitum''
| label2 = Often preceeded by | data2 = <code>[[#all_sorted|all_sorted]]</code>, <code>[[#reassorted|reassorted]]</code>
| label3 = [[#
| label4 = Relevant [[#setting|runtime variables]] | data4 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
| header5 = See also
Line 675 ⟶ 747:
| title = Function <code>for_each</code> <span style="nowrap">({{module:params/doc/link to the code|for_each|code}})</span>
| label1 = Num. of arguments | data1 = 1
| label2 = [[#
| label3 = Relevant [[#setting|runtime variables]] | data3 = <code>h</code>, <code>i</code>, <code>l</code>, <code>f</code>, <code>n</code>
| header4 = See also
Line 1,963 ⟶ 2,035:
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|renaming_by_replacing|target|replace|[count]|[plain flag]|pipe function name}}</syntaxhighlight>
This modifier works similarly to <code>[[#mapping_by_replacing|mapping_by_replacing]]</code>, but instead of replacing parameters' values '''it renames the parameters themselves'''. Care must be used knowing that if a new name collides with another new name one of the two parameters will be removed without knowing which one. New names and old names do not create collisions. If a name is returned identical it will be considered as “unchanged” and in case of conflicts the renamed one will prevail. Possible leading and trailing spaces in the new names are always stripped (however they are not stripped while searching for the name to replace).
Since there can be only one parameter name that matches exactly a literal string, when used with the <code>strict</code> flag this modifier directly accesses the requested key without looping through the entire list of parameters (so it will be much faster).
For instance, the following example renames all parameters of type {{para|arg1}}, {{para|arg2}}, … {{para|argN}} into {{para|1}}, {{para|2}} … {{para|N}}, thus creating a novel sequence:
Line 2,013 ⟶ 2,087:
{{vpad|1.5em|clear=none}}
=== <code>parsing</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>parsing</code> <span style="nowrap">({{module:params/doc/link to the code|parsing|code}})</span>
| label1 = Num. of arguments | data1 = 1–6
| label2 = Repeatable | data2 = Yes
| label3 = Often accompanied by | data3 = <code>[[#new|new]]</code>
| header4 = See also
| data5 = <code>[[#new|new]]</code>
}}
; Brief
: ''Create new parameters by parsing a parameter string''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|parsing|string to parse|[trim flag]|[iteration delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe function name}}</syntaxhighlight>
This modifier allows to add an infinity of new parameters by using a parameter string. By default this uses <code>|</code> as separator between parameters and <code>=</code> as separator between keys and values, but it is possible to specify other strings or patterns.
Examples:
* <syntaxhighlight lang="wikitext" inline>{{#invoke:params|new|parsing|one{{!}}two{{!}}three{{!}}foo{{=}}bar{{!}}hello{{=}}world|for_each|[$#:$@]}}</syntaxhighlight>
*: ↳ {{#invoke:params|new|parsing|one{{!}}two{{!}}three{{!}}foo{{=}}bar{{!}}hello{{=}}world|for_each|[$#:$@]}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:params|new|parsing|one, two; three. foo: bar, hello: world|trim_all|with_pattern_isep|[,;.]|with_plain_psep|:|for_each|[$#:$@]}}</syntaxhighlight>
*: ↳ {{#invoke:params|new|parsing|one, two; three. foo: bar, hello: world|trim_all|with_pattern_isep|[,;.]|with_plain_psep|:|for_each|[$#:$@]}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:params|new|parsing|one/two/ three / foo % bar /hello%world|with_plain_psep|%|trim_none|with_plain_isep|/|for_each|[$#:$@]}}</syntaxhighlight>
*: ↳ {{#invoke:params|new|parsing|one/two/ three / foo % bar /hello%world|with_plain_psep|%|trim_none|with_plain_isep|/|for_each|[$#:$@]}}
The ''trim flag'' argument can be placed in any position (not necessarily in second position) and can have one of the following values: <code>trim_none</code>, <code>trim_named</code>, <code>trim_positional</code>, <code>trim_all</code>. If omitted it defaults to <code>trim_named</code>.
The ''iteration delimiter setter'' can be placed in any position (not necessarily in third position), must be ''immediately'' followed by a user-given string, and can either be <code>with_plain_isep</code> or <code>with_pattern_isep</code>. If omitted, the two arguments default to <code>with_plain_isep|{{!}}</code>. If the custom string is empty (but not if it is blank but not empty) the string to parse will be assumed not to have any iteration delimiters.
The ''key-value delimiter setter'' can be placed in any position (not necessarily in fifth position), must be ''immediately'' followed by a user-given string, and can either be <code>with_plain_psep</code> or <code>with_pattern_psep</code>. If omitted, the two arguments default to <code>with_plain_psep|{{=}}</code>. If the custom string is empty (but not if it is blank but not empty) the string to parse will be assumed not to have any key-value delimiters.
The <code>[[#new|new]]</code> directive often accompanies this modifier.
{{vpad|clear=none}}
{{A note}} All arguments passed to this modifier except the <code>parsing</code> modifier name itself, the ''trim flag'', ''iteration delimiter setter'' and ''key-value delimiter setter'' arguments will not be trimmed of their leading and trailing spaces.
{{vpad|1.5em|clear=none}}
=== <code>reinterpreting</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>reinterpreting</code> <span style="nowrap">({{module:params/doc/link to the code|reinterpreting|code}})</span>
| label1 = Num. of arguments | data1 = 1–6
| label2 = Repeatable | data2 = Yes
| header3 = See also
| data4 = <code>[[#parsing|parsing]]</code>
}}
; Brief
: ''Use the content of a parameter as a parameter string to parse, after removing the parameter itself''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|reinterpreting|parameter name|[trim flag]|[iteration delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe function name}}</syntaxhighlight>
This modifier works exactly like <code>[[#parsing|parsing]]</code>, but takes the content of a disposable parameter as input. See there for further information. The parameter passed to this modifier will be immediately deleted.
{{vpad|clear=none}}
{{A note}} All arguments passed to this modifier except the <code>reinterpreting</code> modifier name itself, the ''parmeter name'', the ''trim flag'', ''iteration delimiter setter'' and ''key-value delimiter setter'' arguments will not be trimmed of their leading and trailing spaces.
{{vpad|1.5em|clear=none}}
=== <code>combining_by_calling</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>combining_by_calling</code> <span style="nowrap">({{module:params/doc/link to the code|combining_by_calling|code}})</span>
| label1 = Num. of arguments | data1 = 2
| label2 = Repeatable | data2 = Yes
| header3 = See also
| data4 = <code>[[#entering_substack|entering_substack]]</code>, <code>[[#snapshotting|snapshotting]]</code>, <code>[[#remembering|remembering]]</code>, <code>[[#concat_and_call|concat_and_call]]</code>
}}
; Brief
: ''Pass all current parameters to a custom template and save the returned output as a new parameter''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|combining_by_calling|template name|new parameter name|pipe function name}}</syntaxhighlight>
This is the piping version of <code>[[#concat_and_call|concat_and_call]]</code>. This means that after calling this modifier the old parameters will be (temporarily) gone and the only parameter left will be what is specified in the ''new parameter name'' argument.
Since after using this modifier all parameters will be grouped into one single parameter, to pass additional parameters to the callback template you can safely use <code>[[#imposing|imposing]]</code> or <code>[[#parsing|parsing]]</code>.
For instance, using {{rel|Module:Params/testcases/tdummy echo sb}} as callback template, a template named <syntaxhighlight lang="wikitext" inline>{{example template}}</syntaxhighlight> with the following content,
<syntaxhighlight lang="wikitext">{{#invoke:params|combining_by_calling|module:params/testcases/tdummy echo sb|my_new_param|for_each|[$#:$@]}}</syntaxhighlight>
when transcluded as <syntaxhighlight lang="wikitext" inline>{{example template|one|two|three|hello=world|foo=bar}}</syntaxhighlight> will produce
: {{#invoke:params|new|
imposing|1|one|
imposing|2|two|
imposing|3|three|
imposing|hello|world|
imposing|foo|bar|
combining_by_calling|module:params/testcases/tdummy echo sb|my_new_param|for_each|[$#:$@]}}
{{vpad|1.5em|clear=none}}
=== <code>snapshotting</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>snapshotting</code> <span style="nowrap">({{module:params/doc/link to the code|snapshotting|code}})</span>
| label1 = Num. of arguments | data1 = 0
| label2 = Repeatable | data2 = Yes
| label3 = Eventually followed by | data3 = Either <code>[[#entering_substack|entering_substack]]</code> or <code>[[#flushing|flushing]]</code>
| header4 = See also
| data5 = <code>[[#remembering|remembering]]</code>, <code>[[#entering_substack|entering_substack]]</code>, <code>[[#pulling|pulling]]</code>, <code>[[#merging_substack|merging_substack]]</code>, <code>[[#detaching_substack|detaching_substack]]</code>, <code>[[#leaving_substack|leaving_substack]]</code>, <code>[[#flushing|flushing]]</code>
}}
; Brief
: ''Push a copy of the current parameter list to the snapshot queue''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|snapshotting|pipe function name}}</syntaxhighlight>
No description has been written yet.
<syntaxhighlight lang="wikitext" inline>This example is currently missing</syntaxhighlight>
{{vpad|1.5em|clear=none}}
=== <code>remembering</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>remembering</code> <span style="nowrap">({{module:params/doc/link to the code|remembering|code}})</span>
| label1 = Num. of arguments | data1 = 0
| label2 = Repeatable | data2 = Yes
| label3 = Eventually followed by | data3 = Either <code>[[#entering_substack|entering_substack]]</code> or <code>[[#flushing|flushing]]</code>
| header4 = See also
| data5 = <code>[[#snapshotting|snapshotting]]</code>, <code>[[#entering_substack|entering_substack]]</code>, <code>[[#pulling|pulling]]</code>, <code>[[#merging_substack|merging_substack]]</code>, <code>[[#detaching_substack|detaching_substack]]</code>, <code>[[#leaving_substack|leaving_substack]]</code>, <code>[[#flushing|flushing]]</code>
}}
; Brief
: ''Push a copy of the original (unmodified) parameter list to the snapshot queue''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|remembering|pipe function name}}</syntaxhighlight>
No description has been written yet.
<syntaxhighlight lang="wikitext" inline>This example is currently missing</syntaxhighlight>
{{vpad|1.5em|clear=none}}
=== <code>entering_substack</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>entering_substack</code> <span style="nowrap">({{module:params/doc/link to the code|entering_substack|code}})</span>
| label1 = Num. of arguments | data1 = 0
| label2 = Repeatable | data2 = Yes
| label3 = May be immediately followed by | data3 = <code>[[#new|new]]</code>
| label4 = Eventually followed by | data4 = Either <code>[[#merging_substack|merging_substack]]</code> or <code>[[#leaving_substack|leaving_substack]]</code> followed by <code>[[#flushing|flushing]]</code>
| header5 = See also
| data6 = <code>[[#snapshotting|snapshotting]]</code>, <code>[[#remembering|remembering]]</code>, <code>[[#pulling|pulling]]</code>, <code>[[#merging_substack|merging_substack]]</code>, <code>[[#detaching_substack|detaching_substack]]</code>, <code>[[#leaving_substack|leaving_substack]]</code>, <code>[[#flushing|flushing]]</code>
}}
; Brief
: ''The brief is currently missing''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|entering_substack|[new]|pipe function name}}</syntaxhighlight>
No description has been written yet.
<syntaxhighlight lang="wikitext" inline>This example is currently missing</syntaxhighlight>
{{vpad|1.5em|clear=none}}
=== <code>pulling</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>pulling</code> <span style="nowrap">({{module:params/doc/link to the code|pulling|code}})</span>
| label1 = Num. of arguments | data1 = 1
| label2 = Repeatable | data2 = Yes
| label3 = Often preceeded by | data3 = <code>[[#new|new]]</code>
| header4 = See also
| data5 = <code>[[#snapshotting|snapshotting]]</code>, <code>[[#remembering|remembering]]</code>, <code>[[#merging_substack|merging_substack]]</code>, <code>[[#detaching_substack|detaching_substack]]</code>, <code>[[#leaving_substack|leaving_substack]]</code>, <code>[[#flushing|flushing]]</code>
}}
; Brief
: ''The brief is currently missing''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|pulling|parameter name|pipe function name}}</syntaxhighlight>
No description has been written yet.
<syntaxhighlight lang="wikitext" inline>This example is currently missing</syntaxhighlight>
{{vpad|1.5em|clear=none}}
=== <code>detaching_substack</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>detaching_substack</code> <span style="nowrap">({{module:params/doc/link to the code|detaching_substack|code}})</span>
| label1 = Num. of arguments | data1 = 0
| label2 = Repeatable | data2 = Yes
| label3 = Restrictions | data3 = Usable only inside substacks
| header4 = See also
| data5 = <code>[[#snapshotting|snapshotting]]</code>, <code>[[#remembering|remembering]]</code>, <code>[[#entering_substack|entering_substack]]</code>, <code>[[#pulling|pulling]]</code>, <code>[[#merging_substack|merging_substack]]</code>, <code>[[#leaving_substack|leaving_substack]]</code>, <code>[[#flushing|flushing]]</code>
}}
; Brief
: ''Remove the parameters present in the current stack from the parent stack''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|detaching_substack|pipe function name}}</syntaxhighlight>
No description has been written yet.
<syntaxhighlight lang="wikitext" inline>This example is currently missing</syntaxhighlight>
{{vpad|1.5em|clear=none}}
=== <code>leaving_substack</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>leaving_substack</code> <span style="nowrap">({{module:params/doc/link to the code|leaving_substack|code}})</span>
| label1 = Num. of arguments | data1 = 0
| label2 = Repeatable | data2 = Yes
| label3 = Restrictions | data3 = Usable only inside substacks
| header4 = See also
| data5 = <code>[[#snapshotting|snapshotting]]</code>, <code>[[#remembering|remembering]]</code>, <code>[[#entering_substack|entering_substack]]</code>, <code>[[#pulling|pulling]]</code>, <code>[[#merging_substack|merging_substack]]</code>, <code>[[#detaching_substack|detaching_substack]]</code>, <code>[[#flushing|flushing]]</code>
}}
; Brief
: ''The brief is currently missing''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|leaving_substack|pipe function name}}</syntaxhighlight>
No description has been written yet.
<syntaxhighlight lang="wikitext" inline>This example is currently missing</syntaxhighlight>
{{vpad|1.5em|clear=none}}
=== <code>merging_substack</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>merging_substack</code> <span style="nowrap">({{module:params/doc/link to the code|merging_substack|code}})</span>
| label1 = Num. of arguments | data1 = 0
| label2 = Repeatable | data2 = Yes
| label3 = Restrictions | data3 = Usable only inside substacks
| header4 = See also
| data5 = <code>[[#snapshotting|snapshotting]]</code>, <code>[[#remembering|remembering]]</code>, <code>[[#entering_substack|entering_substack]]</code>, <code>[[#pulling|pulling]]</code>, <code>[[#detaching_substack|detaching_substack]]</code>, <code>[[#leaving_substack|leaving_substack]]</code>, <code>[[#flushing|flushing]]</code>
}}
; Brief
: ''The brief is currently missing''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|merging_substack|pipe function name}}</syntaxhighlight>
No description has been written yet.
<syntaxhighlight lang="wikitext" inline>This example is currently missing</syntaxhighlight>
{{vpad|1.5em|clear=none}}
=== <code>flushing</code> ===
{{Infobox|headerstyle=background:lavender
| titlestyle = font-weight:normal; font-size:100%;
| title = Modifier <code>flushing</code> <span style="nowrap">({{module:params/doc/link to the code|flushing|code}})</span>
| label1 = Num. of arguments | data1 = 0
| label2 = Repeatable | data2 = Yes
| header3 = See also
| data4 = <code>[[#snapshotting|snapshotting]]</code>, <code>[[#remembering|remembering]]</code>, <code>[[#entering_substack|entering_substack]]</code>, <code>[[#pulling|pulling]]</code>, <code>[[#merging_substack|merging_substack]]</code>, <code>[[#detaching_substack|detaching_substack]]</code>, <code>[[#leaving_substack|leaving_substack]]</code>
}}
; Brief
: ''The brief is currently missing''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|flushing|pipe function name}}</syntaxhighlight>
No description has been written yet.
<syntaxhighlight lang="wikitext" inline>This example is currently missing</syntaxhighlight>
{{vpad|1.5em|clear=none}}
=== <code>new</code> ===
{{Infobox|headerstyle=background:lavender
Line 2,022 ⟶ 2,371:
| label3 = Restrictions | data3 = First position only
| header4 = See also
| data5 = <code>[[#parsing|parsing]]</code>, <code>[[#imposing|imposing]]</code>, <code>[[#providing|providing]]</code><!--, <code>[[#inserting|inserting]]</code>-->, <code>[[#discarding|discarding]]</code>
}}
; Brief
: ''
; Syntax
: <syntaxhighlight lang="wikitext" inline>{{#invoke:params|new|pipe function name}}</syntaxhighlight>
This modifier can only appear
The newly created parameter stack can be populated via <code>[[#
Examples:
Line 2,039 ⟶ 2,388:
{{vpad|1.5em|clear=none}}
== Subpages ==
* [[Module:Params/ChangeLog]] – Record of the most important changes in the module's code
|