多行,以空格开头

时间:2013-10-26 20:12:19

标签: serialization yaml markup

有没有办法在YAML中创建一个多行标量,以保留所有行的前导空格?

例如,本文:

 *  apples
 *  oranges
 *  lemons

故意用空格开始每一行。如果我想要完全具备上述内容怎么办? 字符串(即" * apples\n * oranges\n * lemons"在YAML文档中的某处定义?是否可以不丢失空格和 以一种最易读的方式?

使用|的常用方法不起作用,因为它会在星号前删除空格:

data:
    maybe_a_bulleted_list: |
         *  apples
         *  oranges
         *  lemons

但是如果我可以说下一个块缩进了四个空格而不是五个(减去之前已经知道的缩进),那几乎就是我所需要的。

有没有办法通过优雅的YAML实现这一目标?


背景:我正在尝试创建一个人工可编辑的文件,其中包含最终将转换为HTML的一小部分自由文本。我想使用Markdown,但由于这些部分只是简单(非)有序列表,我正在考虑支持Markdown和TracWiki。问题是TracWiki格式要正常工作,需要每个项目符号列表项以空格开头(否则多行项目不能正确折叠)。

1 个答案:

答案 0 :(得分:6)

您应该查看Block Chomping Indicator规范。

在您的情况下,它将如下所示:

data:
    maybe_a_bulleted_list: |4+
         *  apples
         *  oranges
         *  lemons