Skip to main content
# Conditional Blocks for Foliant

This preprocessors lets you exclude parts of the source based on flags defined in the project config and environment variables, as well as current target and backend.


## Installation

```shell
$ pip install foliantcontrib.flags
```


## Config

Enable the propressor by adding it to `preprocessors`:

```yaml
preprocessors:
- flags
```

Enabled project flags are listed in `preprocessors.flags.flags`:

```yaml
preprocessors:
- flags:
flags:
- foo
- bar
```

To set flags for the current session, define `FOLIANT_FLAGS` environment variable:

```shell
$ FOLIANT_FLAGS="spam, eggs"
```

You can use commas, semicolons, or spaces to separate flags.

> **Hint**
>
> To emulate a particular target or backend with a flag, use the special flags `target:FLAG` and `backend:FLAG` where `FLAG` is your target or backend:
>
> $ FOLIANT_FLAGS="target:pdf, backend:pandoc, spam"


## Usage

Conditional blocks are enclosed between `<<if>...</if>` tags:

```markdown
This paragraph is for everyone.

<<if flags="management">
This parapraph is for management only.
</if>
```

A block can depend on multiple flags. You can pick whether all tags must be present for the block to appear, or any of them (by default, `kind="all"` is assumed):

```markdown
<<if flags="spam, eggs" kind="all">
This is included only if both `spam` and `eggs` are set.
</if>

<<if flags="spam, eggs" kind="any">
This is included if both `spam` or `eggs` is set.
</if>
```

You can also list flags that must *not* be set for the block to be included:

```markdown
<<if flags="spam, eggs" kind="none">
This is included only if neither `spam` nor `eggs` are set.
</if>
```

You can check against the current target and backend instead of manually defined flags:

```markdown
<<if targets="pdf">This is for pdf output</if><<if targets="site">This is for the site</if>

<<if backends="mkdocs">This is only for MkDocs.</if>
```

Metadata

Release files for foliantcontrib.flags 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for foliantcontrib.flags 1.0.2
File Size Uploaded
foliantcontrib.flags-1.0.2.tar.gz 3.0 kB Details

Release files / foliantcontrib.flags-1.0.2.tar.gz

Download URL foliantcontrib.flags-1.0.2.tar.gz
Size 3.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0d3c672040aa170ca985106fc30fdef21d2b510c99f9b05fcd2461a181c17ae9
BLAKE2b-256 checksum
How to use checksums
e8cae4f5581f5c25e2e19e164c033ccff4ba303a94e0ffb8f319b8c593b280a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.6

Release history Release notifications | RSS feed

This release

1.0.2 This release

1 release file

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page