我们正在使用go-templates创建yaml。在它们中,我们有多行输出的动作,需要在特定的缩进级别缩进。我们可以使用indent
函数,但它不会以不同方式处理第一行,因此要求操作定义没有缩进级别。
例如:
foo:
bar:
baz:
{{ myYamlOutputtingAction | indent 11 }} # <-- notice 0 indent level
有没有办法可以将我的动作定义放在缩进级别,这对于模板的上下文有意义?
答案 0 :(得分:3)
(在线搜索的时间超过了我想承认的时间,我无法在任何地方找到这样做。在考虑了一分钟后,答案显而易见,但我想保存下一个人的某个时间。)
你可以改变这个:
foo:
bar:
baz:
{{ myYamlOutputtingAction | indent 11 }} # <-- notice 0 indent level
对此:
foo:
bar:
baz:
{{- "\n"}}{{ myYamlOutputtingAction | indent 11 }} # <-- properly indented with a little bit fluff
一点解释
这可以确保{{- "\n"}}
有0缩进后的任何内容。这意味着只要有意义,你就可以交换一个hacky {{- "\n"}}
进行适当的缩进。我们通常认为这是值得的。