所以,我试图在YAML中编写插件配置文件,但即使所有似乎正确格式化,我的解析器也会抛出错误。 YAML网站不太有帮助,我唯一能找到任何类型教程的地方是docs.ansible.com/ansible/YAMLSyntax.html上的参差不齐的网站。由于我普遍缺乏YAML语法知识,因此我可能在语法中遗漏了一些愚蠢的东西,每个YAML特殊字符的作用是什么?
供参考,这是我行为不端的YAML文件:
TaskExecutor
答案 0 :(得分:2)
YAML不需要引用大多数字符串,但如果它们属于某个字符列表,您将需要引用特殊字符。如果您的值包含以下任何特殊字符,请使用引号(例如:,{,},[,] ,,,&,*,#,?,|, - ,<,>,=,!, %,@,)。
答案 1 :(得分:2)
您的YAML语法无效,不是因为字符,而是因为缺少空格:
EnforcedWorlds:|
整行是一个字符串。您希望它是映射键(EnforcedWorlds
),后跟块标量(|
)的标题。为此,必须在冒号后添加空格:
EnforcedWorlds: |
但我不确定这是否真的是你想要的。它会将所有后续的缩进行解析为文字字符串(保留换行符)。但内容看起来像一个YAML序列,所以也许你想这样写:
EnforcedWorlds:
- World
- Nether
- DIM-1
- End
- DIM1
此处,该值将被解析为一系列标量项。
要了解如何解析您的输入,您可以使用一些Web服务:
还有ysh,一个用于测试的交互式YAML shell,使用Perl。