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
相关产品推荐
相关产品推荐

