Template:Ifdef

From ISFDB
Jump to navigation Jump to search

{{{2}}}

Documentation

{{ifdef}} is a compact variant of {{Qif}} for simple "if defined then do" statements without else part. It's the opposite of {{ifndef}}.

Usage

{{Ifdef|value|result}} yields result  if value  isn't blank.

This template is used to simplify the following equivalent but somewhat cryptic code variants:

{{{1{{{1|}}}|{{{2}}}}}}
{{{value{{{value|}}}|{{{result}}}}}}
{{{test{{{test|}}}|{{{then}}}}}}


Example

Code Result
1 {{Ifdef| |empty}} 1
2 {{Ifdef|x|gotcha}} 2 gotcha
3 {{Ifdef| {{{1| }}} | {{{1| }}} undefined}} 3
4 {{Ifdef| {{{1|x}}} | {{{1|x}}} for an u}} 4 x for an u
5 {{Ifdef| {{{ 1 }}} | {{{1}}} bad idea}} 5 {{{1}}} bad idea
6 {{Ifdef| {{!}} |see also {{Tl|Qif}} }} 6 see also {{Qif}}
7 {{Ifdef| okay | 2=see=[[#Caveats]] }} 7 see=#Caveats
8 {{Ifdef| oops | see=[[#Caveats]] }} 8 {{{2}}}

See also a simpler example using ifdef. There's no default in ifdef for the second parameter, because this could hide problematic code.

Caveats

In templates the characters "=" (=) and "|" (|) cannot be used as is in parameters. The numeric character references = and | are often good enough, but for Wiki and XHTML markup the literal characters are required:

  1. For | template:! (edittalklinkshistory) offers a workaround.
  2. For = the template parameter mechanism allows {{ifdef}} resulting in "ok=yes" instead of {{ifdef}} resulting in "{{{2}}}".

Substitution works only for {{ifdef}}, but not for {{ifndef}} or {{qif}}.

See also

Source

Copied from the page on meta where it is released under the GFDL.