Conditional Content
In some cases you may want to create content that only displays for a given output format (or only displays when not rendering to a format). You can accomplish this by creating divs, spans and code blocks with the .content-visible
and .content-hidden
classes.
.content-visible
To make content visible only for a given format, you can create a div (:::
) with the .content-visible
class. For example, here we mark content as only visible in HTML:
::: {.content-visible when-format="html"}
Will only appear in HTML.
:::
You can also set conditions on non-executable code blocks:
```{.python .content-visible when-format="html"}
# code shown only in HTML
2+2
```
To apply a condition only to a part of a paragraph, use a span ([]{}
):
Some text[in HTML.]{.content-visible when-format="html"}
[in PDF.]{.content-visible when-format="pdf"}
You can also mark content as visible for all formats except a specified format. For example:
::: {.content-visible unless-format="pdf"}
Will not appear in PDF.
:::
Then when-format
and unless-format
attributes match the current Pandoc output format with some additional intelligence to alias related formats (e.g. html, html4, and html5). Details are provided below in Format Matching
when-format
and unless-format
can also be combined to create more complex conditions:
::: {.content-visible when-format="html" unless-format="revealjs"}
Will only appear in HTML and not in Reveal.js, but actually it appears.
:::
::: {.content-visible when-format="revealjs"}
Will only appear in Reveal.js and not in HTML or other formats.
:::
Format Matching
Then when-format
and unless-format
clauses do some aliasing of related formats to make it more straightforward to target content. The following aliases are implemented:
Alias | Formats |
---|---|
latex |
latex , pdf |
pdf |
latex , pdf |
epub |
epub* |
html |
html* , epub* , revealjs |
html:js |
html* , revealjs |
markdown |
markdown* , commonmark* , gfm , markua |
Note that the html:js
alias indicates that the target format is capable of executing JavaScript (this maps to all HTML formats save for ePub).