5

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

例如,这段文字:

 *  apples
 *  oranges
 *  lemons

故意用空格开始每一行。如果我想拥有上面的字符串(即" * apples\n * oranges\n * lemons" 在 YAML 文档中的某个地方定义)怎么办?是否可以在不丢失空格的情况下以最易读的方式做到这一点?

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

data:
    maybe_a_bulleted_list: |
         *  apples
         *  oranges
         *  lemons

但如果我只能说下一个块缩进四个空格而不是五个(减去前面的缩进,这是已知的),那几乎就是我所需要的。

有没有办法用优雅的 YAML 来实现这一点?


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

4

1 回答 1

6

您应该查看Block Chomping Indicator规范。

在你的情况下,它看起来像:

data:
    maybe_a_bulleted_list: |4+
         *  apples
         *  oranges
         *  lemons
于 2014-01-17T14:50:13.253 回答