Sometimes you may want text to be included in a document only if certain conditions are satisfied. For example, you
may want to display a disclaimer section only if the document is a draft (see the document.draft
setting), or use a
particular stylesheet only if when you generate a PDF document.
To do so, you can use the condition
macro
(aliased by ?
), and a set of additional macros that can be used as conditional operators i.e.:
Consider the following code:
In this case, if document.draft
is set to true
, “This is a first draft of the Glyph
Book” will be displayed; if not, “This is the official version of the Glyph Book” will be
displayed instead.
The condition
macro takes up to three
parameters:
- the condition to evaluate
- the text to include in the document only if the condition is satisfied.
- (Optional) the text to include in the document if the condition is not satisfied.
Note that all parameters can contain macros, of course, so you can write things like:
In this case, the pagination.css
stylesheet is included only when you're generating a PDF document using
Prince XML.
Results of conditional expressions
The condition
macro in Glyph works in
a similar way as conditionals in programming languages: if the conditional expression (supplied as first
parameter) is satisfied then the second parameter is executed or displayed. But when is a conditional expression
satisfied? Glyph is a simple mini-language to perform text manipulation, and has no types, it can only
understand text, therefore:
- A conditional expression is satisfied if it evaluates to a non-empty string except “false”.
- A conditional expression is not satisfied if it evaluates to an empty string or the string “false”.