A jinja2 extension for includes with correct indentation
Project description
# 🦸♂️ Not the solution `jinja2` deserves, but the workaround it needs right now.
`jinja2_workarounds` offers an extension for jinja2 that works around a long standing issue[^1]
where `include` does not preserve correct indentation for multi-line includes. Simply add the
`jinja2_workarounds.MultiLineInclude` [extension to your environment](https://jinja.palletsprojects.com/en/3.0.x/extensions/) and use the `indent content` directive to
correctly indent your multi-line includes.
## Installation
```pip install jinja2_workarounds```
## Usage example
```jinja2
# text.j2
this
is
some
text
```
```jinja2
# example.j2
example:
{% include 'text.j2' indent content %}
```
is then rendered as
```
example:
this
is
some
text
```
compared to `jinja2`'s default `include` which would result in
```
example:
this
is
some
text
```
## Advanced features
`MultiLineInclude` is compatible with custom `block_start_string` and `block_end_string`. It also works with
the advanced features of `jinja2'`s `include` statement. The following variants are all supported and work as
expected
```jinja2
{% include 'missing.j2' ignore missing indent content %} # handle missing templates
{% include ['foo.j2', 'bar.j2'] indent content %} # multiple alternative templates
{% include 'child.j2' without context %} # include child with/without content
{%- include 'child.j2' +%} # include with custom whitespace control
```
[^1]: https://github.com/pallets/jinja/issues/178
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for jinja2_workarounds-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04c772eeb10975ad638d960a5d4eddc35bab00d8d0ab7695d8d540646d2692bf |
|
MD5 | 7be0356309d9880c755f38758be3fde9 |
|
BLAKE2b-256 | a6829a4a3d0f13720269f634e927356ed6d87fb03c4263b3945a151fe177bea1 |