Template:Ifnotempty

From sdeevelopedia
Jump to: navigation, search

With this template #if can be used in a way such that it does not strip spaces and newlines from the "then" and "else" part. For evaluating the condition spaces and newlines are stripped like with ParserFunctions.

Usage[edit]

  • {{ifnotempty|x| p | q }} gives "{{safesubst:{{safesubst:#if:x|p1|p2}}| p | q }}"
  • {{ifnotempty|| p | q }} gives "{{safesubst:{{safesubst:#if:|p1|p2}}| p | q }}"

Compare:

  • {{#if:x| p | q }} gives "{{#if:x| p | q }}"

Note that, unlike parser functions, templates require writing equals signs in values of unnamed parameters as {{=}}

For full substitution, simply use subst: or safesubst:. If the condition contains a parser function, template, or variable, that should be substituted too. Optionally the "then" or "else" part can also be substituted.

Expansion depth limit[edit]

13 levels allowed:

{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|a}}}}}}}}}}}}}}}}}}}}}}}}}} gives {{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|a|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}

{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|{{ifnotempty|x|a}}}}}}}}}}}}}}}}}}}}}}}}}}}} gives {{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|{{safesubst:{{safesubst:#if:x|p1|p2}}|a|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}

Internal technical details[edit]

For evaluating the condition the template uses the actual parser function; however, not directly with p and q, because this strips spaces and newlines from the result, but with index values 1 and 2. The result can be 1, 2. The template with the applicable name is called (Template:P1 or Template:P2), with as parameters p and q.

See also[edit]