YAML文件语法

时间:2015-11-25 01:42:02

标签: syntax yaml

我正在使用yaml文件,我不应该打破它。问题是我不熟悉它,所以不确定我是否可以改变它的某些格式...

我们收到的源文件如下:
    - items: - heading: Maps description: > Integrate 3D buildings and tacos. image_path: /music/images/v2/web_api-music.png

处理完文件后,看起来像这样:
    - items: - heading: Maps description: > Integrate 3D buildings and tacos. image_path: /music/images/v2/web_api-music.png

如果大于号和字符串之间缺少换行符,是否会破坏代码?它会对UI格式产生任何潜在影响吗?

如果在"之前有额外的空间,那么重要的是整合3D建筑物和炸玉米饼"?如下 - items: - heading: Maps description: > Integrate 3D buildings and tacos. image_path: /music/images/v2/web_api-music.png

谢谢你,感恩节快乐!

2 个答案:

答案 0 :(得分:1)

请参阅spec for the version of yaml you are interested in

一般来说,>仅在行的末尾有意义,并且意味着后续的缩进块应该折叠到此行,并删除所有换行符和前导/尾随空格(由sinlge空格替换) 。)所以

- heading: Maps
  description: >
    Integrate 3D buildings and tacos.
  image_path: /music/images/v2/web_api-music.png

等同于

- heading: Maps
  description: Integrate 3D buildings and tacos.

并在删除换行符时保留>实际上将其添加到字符串值。

改变任何给定块的缩进量通常是无关紧要的,只要块的行始终缩进

答案 1 :(得分:1)

使用在线YAML验证器检查文件最简单。例如:yamllint。此外,还有许多语言的库,所以如果可能的话,我建议您使用其中一个来处理您的yaml文件。

您的第一个处理文件无效。 >后应该有换行符,或者您可以省略>

你的最后一个例子是有效的。缩进量无关紧要。来自the spec

  

缩进量是演示详细信息,不得用于传达内容信息。

     

[...]

     

每个节点必须比其父节点缩进。所有兄弟节点必须使用完全相同的缩进级别。然而,每个兄弟节点的内容可以进一步独立地缩进。