The if directive is supplied by the conditional plugin.

With this directive, you can make text be conditionally displayed on a page. For example:

[[!if  test="enabled(smiley)"
      then="The smiley plugin is enabled :-)"
      else="No smiley plugin here.."]]

If the specified test succeeds, the then text will be displayed, otherwise the else text will be displayed. The else part is optional.

The then and else values can include any markup that would be allowed in the wiki page outside the template. Triple-quoting the values even allows quotes to be included.

The test is a PageSpec; if it matches any page in the wiki then it succeeds. So you can do things like testing for the existence of a page or pages, testing to see if any pages were created in a given month, and so on.

If you want the PageSpec to only match against the page that contains the conditional, rather than matching against all pages in the wiki, set the "all" parameter to "no".

In an if directive, the regular PageSpec syntax is expanded with the following additional tests:

  • enabled(plugin)

    Tests whether the specified plugin is enabled.

  • sourcepage(glob)

    Tests whether the glob matches the name of the page that contains the conditional.

  • destpage(glob)

    Tests whether the glob matches the name of the page that is being built. That might be different than the name of the page that contains the conditional, if it's being inlined into another page.

  • included()

    Tests whether the page is being included onto another page, for example via inline or map. Note that pages inserted into other pages via template are not matched here.