Difference between revisions of "Module:Unsubst/doc"

From blackwiki
Jump to navigation Jump to search
blackwiki>Jc86035
m (→‎Usage: rm $N)
blackwiki>Jc86035
m (→‎Usage: + notes on new parameters)
Line 22: Line 22:
  
 
Some templates have a &lt;noinclude&gt; but no matching &lt;/noinclude&gt; at the end of the template. In such cases the missing &lt;/noinclude&gt; must be added before the ending <code>{{))}}</code>.
 
Some templates have a &lt;noinclude&gt; but no matching &lt;/noinclude&gt; at the end of the template. In such cases the missing &lt;/noinclude&gt; must be added before the ending <code>{{))}}</code>.
 +
 +
==== Advanced ====
 +
 +
<pre>
 +
{{ {{{|safesubst:}}}#invoke:Unsubst||$params=[ parameters ]|$aliases=[ aliases ]|$flags=[ flags ]|$B=
 +
 +
[ ... existing template code ... ]
 +
 +
}}
 +
</pre>
 +
 +
Due to Lua limitations, parameters are normally ordered randomly when the template is substituted. {{para|$params}} can be used in #invoke:Unsubst to list template parameters in order, comma-separated (e.g. <code>egg,bacon,sausage,cheese,spam</code>). Numbered parameters should be before others in the list. Any remaining parameters are tacked onto the end of the generated invocation.
 +
 +
Parameter aliases can be listed in {{para|$aliases}} (and shouldn't be listed in {{para|$params}}), and will be replaced automatically. Each alias and its replacement should be formatted as <code>alias>replacement</code>, and each of those pairs should be comma-separated (e.g. <code>œuf>egg,melt>cheese</code>). Note that this parameter can function with or without {{para|$params}}.
 +
 +
Parameter {{para|$flags}} can be used to modify other facets of the module's behaviour; entries are comma-separated. Valid flags are <code>override</code> (allows parameters in the #invoke: to take precedence over parameters in the original template invocation); <code>keep-whitespace</code> (prevents whitespace from being trimmed from unnamed parameters); and <code>remove-empty</code> (removes empty parameters).
  
 
=== Example ===
 
=== Example ===

Revision as of 09:34, 7 June 2017


  1. REDIRECT Template:High-use

Helper module to facilitate a substituted template transform into a template transclusion.

Maintenance templates, such as {{Citation needed}} or {{Refimprove}}, should never be substituted. A trick to avoid that is to make a template substitute to its transcluded form.

Usage

To turn a template into a self-substituting template, wrap the existing template code with:

{{ {{{|safesubst:}}}#invoke:Unsubst||$B=

 [ ... existing template code ... ]

}}

The wikitext to display when not substed must be given as "$B". All other parameters passed to the #invoke will be copied to the generated template invocation as default values. If the value of any of these default parameters is "__DATE__", that value in the generated template invocation will be the current month and year.

Some templates have a <noinclude> but no matching </noinclude> at the end of the template. In such cases the missing </noinclude> must be added before the ending }}.

Advanced

{{ {{{|safesubst:}}}#invoke:Unsubst||$params=[ parameters ]|$aliases=[ aliases ]|$flags=[ flags ]|$B=

 [ ... existing template code ... ]

}}

Due to Lua limitations, parameters are normally ordered randomly when the template is substituted. |$params= can be used in #invoke:Unsubst to list template parameters in order, comma-separated (e.g. egg,bacon,sausage,cheese,spam). Numbered parameters should be before others in the list. Any remaining parameters are tacked onto the end of the generated invocation.

Parameter aliases can be listed in |$aliases= (and shouldn't be listed in |$params=), and will be replaced automatically. Each alias and its replacement should be formatted as alias>replacement, and each of those pairs should be comma-separated (e.g. œuf>egg,melt>cheese). Note that this parameter can function with or without |$params=.

Parameter |$flags= can be used to modify other facets of the module's behaviour; entries are comma-separated. Valid flags are override (allows parameters in the #invoke: to take precedence over parameters in the original template invocation); keep-whitespace (prevents whitespace from being trimmed from unnamed parameters); and remove-empty (removes empty parameters).

Example

Consider a template Template:Example containing the following code:

{{ {{{|safesubst:}}}#invoke:Unsubst||foo=bar |date=__DATE__ |$B=

 [ ... Template code goes here ... ]

}}
Original Result
{{subst:example}} {{Example|foo=bar|date=January 2026}}
{{subst:example|foo=X}} {{Example|foo=X|date=January 2026}}
{{subst:example|baz=X}} {{Example|foo=bar|baz=X|date=January 2026}}
{{subst:example|date=January 2001}} {{Example|foo=bar|date=January 2001}}