如何以空行开始块标量?

时间:2019-05-23 05:10:21

标签: yaml

当我尝试以空行在YAML中启动块标量时,它抱怨到下一行与空行具有相同缩进的下一行,“语法错误:预期为,但找到了' '“(但奇怪的是,与缩进的行无关)。我在这里想念什么?

投诉(约done

            - |

                 export $e
              done

作品:

            - |
              #   
                  export $e
              done

我尝试将空格留在第一行之外,在第一行中添加4个额外的空格(使其与export对齐),并添加4个其他空格并包括一个缩进指示符({{1 }}),一切无济于事。

背景故事

这是针对AWS CloudFormation模板的,上一行是!Join的一部分,我需要在- |4之前使用换行符。如果除了将空白行放在块标量的开头之外,还有其他解决方法,那也可以,但是我仍然很好奇。

1 个答案:

答案 0 :(得分:1)

您应该使用block indentation indicator来明确指示要缩进多少数据。在您的情况下,此缩进为两(2):相对于项目指示符(done所在的列,以-开头的行。

        - |2

             export $e
          done

通常,解析器基于文字(或折叠)标量的第一行上的第一个非空格来计算缩进,如果该行具有比其他空格更多的空格,或者根本没有非空格文本,则需要借助块缩进指示符“帮助”解析器。