从 Jinja 呈现的模板中删除不必要的空格
Remove unnecessary whitespace from Jinja rendered template
我正在使用 curl
观看我的网络应用程序的输出。
当 Flask 和 Jinja 渲染模板时,输出中有很多不必要的白色 space。
它似乎是通过渲染来自 Flask-WTF 和 Flask-Bootstrap.
的各种组件添加的
我可以使用 sed
删除它,但是有没有办法从 Jinja 控制它?
Jinja 有多种方式 control whitespace。它没有美化输出的方法,您必须手动确保一切看起来“不错”。
最广泛的解决方案是在环境上设置 trim_blocks
和 lstrip_blocks
。
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
如果要在文件末尾保留一个换行符,设置strip_trailing_newlines = False
。
您可以使用控制字符来修改标签周围空白的工作方式。 -
总是删除空格,+
总是保留它,覆盖该标签的 env 设置。 -
字符可以位于标签的开头或结尾(或两者)以控制该方向的空白,+
字符仅在标签开头才有意义。
{%- if ... %}
条在 之前
{%- if ... -%}
前后条
{%+ if ... %}
保留在[=43=]之前
{%+ if ... -%}
之前保留,之后删除
- 记住
{% endif %}
是分开对待的
控制字符只适用于模板你写的。如果您包含模板或使用来自第三方的宏,无论他们如何写,该模板将适用于该部分。
折叠块前后的空白:
{%- if form.message -%} //trims before
{{ form.message }}
{%- endif -%} // trims after
我正在使用 curl
观看我的网络应用程序的输出。
当 Flask 和 Jinja 渲染模板时,输出中有很多不必要的白色 space。
它似乎是通过渲染来自 Flask-WTF 和 Flask-Bootstrap.
我可以使用 sed
删除它,但是有没有办法从 Jinja 控制它?
Jinja 有多种方式 control whitespace。它没有美化输出的方法,您必须手动确保一切看起来“不错”。
最广泛的解决方案是在环境上设置 trim_blocks
和 lstrip_blocks
。
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
如果要在文件末尾保留一个换行符,设置strip_trailing_newlines = False
。
您可以使用控制字符来修改标签周围空白的工作方式。 -
总是删除空格,+
总是保留它,覆盖该标签的 env 设置。 -
字符可以位于标签的开头或结尾(或两者)以控制该方向的空白,+
字符仅在标签开头才有意义。
{%- if ... %}
条在 之前
{%- if ... -%}
前后条{%+ if ... %}
保留在[=43=]之前{%+ if ... -%}
之前保留,之后删除- 记住
{% endif %}
是分开对待的
控制字符只适用于模板你写的。如果您包含模板或使用来自第三方的宏,无论他们如何写,该模板将适用于该部分。
折叠块前后的空白:
{%- if form.message -%} //trims before
{{ form.message }}
{%- endif -%} // trims after