.. highlight:: html+jinja
Whitespace Control
------------------
In the default configuration:
* a single trailing newline is stripped if present
* other whitespace (spaces, tabs, newlines etc.) is returned unchanged
If an application configures Jinja to `trim_blocks`, the first newline after a
template tag is removed automatically (like in PHP). The `lstrip_blocks`
option can also be set to strip tabs and spaces from the beginning of a
line to the start of a block. (Nothing will be stripped if there are
other characters before the start of the block.)
With both `trim_blocks` and `lstrip_blocks` enabled, you can put block tags
on their own lines, and the entire block line will be removed when
rendered, preserving the whitespace of the contents. For example,
without the `trim_blocks` and `lstrip_blocks` options, this template::
{% if True %}
yay
{% endif %}
gets rendered with blank lines inside the div::
yay
But with both `trim_blocks` and `lstrip_blocks` enabled, the template block
lines are removed and other whitespace is preserved::
yay
You can manually disable the `lstrip_blocks` behavior by putting a
plus sign (``+``) at the start of a block::
{%+ if something %}yay{% endif %}
You can also strip whitespace in templates by hand. If you add a minus
sign (``-``) to the start or end of a block (e.g. a :ref:`for-loop` tag), a
comment, or a variable expression, the whitespaces before or after
that block will be removed::
{% for item in seq -%}
{{ item }}
{%- endfor %}
This will yield all elements without whitespace between them. If `seq` was
a list of numbers from ``1`` to ``9``, the output would be ``123456789``.
If :ref:`line-statements` are enabled, they strip leading whitespace
automatically up to the beginning of the line.
By default, Jinja2 also removes trailing newlines. To keep single
trailing newlines, configure Jinja to `keep_trailing_newline`.
.. admonition:: Note
You must not add whitespace between the tag and the minus sign.
**valid**::
{%- if foo -%}...{% endif %}
**invalid**::
{% - if foo - %}...{% endif %}