Help:Parser functions in templates

When applying ParserFunctions to template parameters, a pipe symbol ("|") may be used to provide the empty string as default value, in order to indicate how to handle things if a parameter is or is not passed in.


 *  


 * Sample A:  


 * Result: 


 *  


 * Sample B:  


 * Result: 


 * Comparison

The second usage ( ) is often the desired way to handle situations where a parameter exists, but is comprised only of empty space.

One way to test whether a parameter was specified in a template call is thus:  

In rare cases, a template behaves differently when a parameter is unspecified compared to when it is specified but empty. When this template is used by a wrapper template (which uses the same set of named parameters), one way to ensure undefined parameters remain undefined is as follows (the technique also works with numbered parameters):

Note that the wrapped_template</tt> receives a specified but empty normal_parameter</tt> in two cases: when normal_parameter</tt> is specified and empty, and when normal_parameter</tt> is unspecified (because the default empty value is then specified by the wrapper template).

By contrast, the wrapped_template</tt> receives a specified sensitive_parameter</tt> only when it is indeed specified, because the #ifeq</tt> changes the wrapped_template</tt> parameter name to « sensitive_parameterx</tt> » when sensitive_parameter</tt> is undefined. Note also that wrapped_template</tt> receives a specified and empty sensitive_parameter</tt> only when the wrapper template receives a specified and empty sensitive_parameter</tt>. Of course, one must make sure the suffixed wrapped_template</tt> parameter name is meaningless to the wrapped_template</tt> for this to work properly.