マクロを使用できます。
{% macro line(key, value) -%}
{% if not value|none %}{{ key }} = {{ value }}{% endif %}
{%- endmacro %}
次に、すべてのキーと値のペアに対してマクロを呼び出します。
{{ line('foo_bar', foobar) }}
{{ line('bar_foo', barfoo) }}
ただし、エッジケースでは問題になる可能性があります。foobar
またはが定義されていない場合barfoo
、おそらくエラーが発生します。マクロでvalue
は、いずれにせよ定義されるため、条件is defined
はもはや意味をなしません。しかし、null/none が実際にいずれかの変数の有効な値である場合、壁にぶつかります...
少し長くなりますが、おそらく防水です。
{% macro line(key, value) -%}
{% if value != omit %}{{ key }} = {{ value }}{% endif %}
{%- endmacro %}
{{ line('foo_bar', foobar|default(omit)) }}
{{ line('bar_foo', barfoo|default(omit)) }}