You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nunjucks模板endif后YAML缩进异常,如何无空行修正?

解决Nunjucks生成YAML时endif后的缩进问题

问题根源在于Nunjucks的空白控制逻辑:原模板中{% endif -%}的尾部-会吃掉该语句后的所有空白(包括换行),导致下一行的{% if links...%}缩进被直接拼接在source-location行的末尾,最终让links错误地和source-location同级。

要在不产生多余空行的前提下修正缩进,只需调整模板中的空白控制标记位置:

修改后的模板代码:

metadata:
  annotations:
    {% if source_location -%}
    source-location: {{ source_location }}
    {% endif %}
  {%- if links and links.length > 0 -%}
  links:
    {% for link in links -%}
    - {{ link }}
    {% endfor %}
  {% endif %}

关键调整说明:

  • 将annotations块的{% endif -%}改为{% endif %},保留该语句后的换行,确保annotations块结构闭合后换行正常。
  • 在links块的{% if ...%}开头添加-%}(即{%- if ...%}),吃掉前面的换行和空白,避免产生多余空行,同时保证links的缩进是相对于metadata的正确层级。

渲染后的正确结果:

metadata:
  annotations:
    source-location: https://banana.com
  links:
    - blert
    - bert

内容的提问来源于stack exchange,提问作者apr_1985

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 19:18:14