删除Jinja2变量定义留下的空行

ITC*_*hap 28 jinja2 salt-stack

使用Jinja2为Saltstack编写模板文件时,我经常在文件的开头定义一些变量.例如:

{% set ip = grains['ip4_interfaces']['eth1'][0] %}
{% set domain = pillar['company_domain'] %}
{% set version = pillar['site_version'] %}
{% set site_url = 'www.' + domain %}

[...]
Run Code Online (Sandbox Code Playgroud)

一切正常,但是当打开生成的文件时,我得到一个空行的块,其中包含jinja代码.

难道我做错了什么 ?如果没有,在使用模板时有没有办法摆脱那些空行?

oeu*_*ete 42

Jinja2中有空白控制.你可能想要:

{%- set ip = grains['ip4_interfaces']['eth1'][0] -%}
{%- set domain = pillar['company_domain'] -%}
{%- set version = pillar['site_version'] -%}
{%- set site_url = 'www.' + domain -%}

[...]
Run Code Online (Sandbox Code Playgroud)

同样,该盐的配置文件支持jinja_trim_blocksjinja_lstrip_blocks(jinja_env:trim_blocks,jinja_env:lstrip_blocks,jinja_sls_env:trim_blocks,和jinja_sls_env:lstrip_blocks 作为2018.3).