Nat*_*yer 2 syntax parsing yaml
所以,我试图用 YAML 编写一个插件配置文件,但我的解析器抛出错误,即使一切似乎都正确格式化。YAML 网站的帮助不大,我发现任何类型教程的唯一地方是 docs.ansible.com/ansible/YAMLSyntax.html 上的参差不齐的网站。由于普遍缺乏 YAML 语法知识,我可能在语法中遗漏了一些愚蠢的东西,每个 YAML 特殊字符都有什么作用?
作为参考,这是我行为不端的 YAML 文件:
EnforcedWorlds:|
- World
- Nether
- DIM-1
- End
- DIM1
Ignore List:|
- CuckooClock5000
- Venomous Potato
- Subtle Snail
Radius: 10
DisallowInRadius:|
- Sandstone => "Darude Sandstone!"
- Quarry (1040) => "This block is too L33T 4U 2 Use here :)"
- Minium Stone (20102 with datavalues 1 to 1520) => "Minimum Minium area!"
Command Output groups:
Mod:|
- Perm Node: gpu.mod
- (Light Green) $(Banner)
- (Teal) Command A
- (Pink) Command B
Admin:|
- Perm Node: gpu.admin
- (Light Red) $(Banner)
- Mod lines 2-3
- (Blue) Command C
- (Bold)
Owner:|
- Mod lines 1-3
- Admin line 2
Run Code Online (Sandbox Code Playgroud)
YAML 不需要引用大多数字符串,但如果特殊字符属于特定字符列表,则您需要引用它们。如果您的值包含以下任何特殊字符,请使用引号(例如:、{、}、[、]、、、&、*、#、?、|、-、<、>、=、!、%、@ , )
您的 YAML 语法无效不是因为字符,而是因为缺少空格:
EnforcedWorlds:|
Run Code Online (Sandbox Code Playgroud)
这整行是一个字符串。您希望它是一个映射键 ( EnforcedWorlds),后跟块标量 ( |) 的标头。为此,您必须在冒号后添加一个空格:
EnforcedWorlds: |
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否真的是你想要的。它将把所有以下更多缩进行解析为文字字符串(保留换行符)。但内容看起来像一个 YAML 序列,所以也许你想这样写:
EnforcedWorlds:
- World
- Nether
- DIM-1
- End
- DIM1
Run Code Online (Sandbox Code Playgroud)
在这里,该值将被解析为标量项的序列。
要查看如何解析您的输入,您可以使用一些 Web 服务:
还有ysh,一个使用 Perl 进行测试的交互式 YAML shell。
| 归档时间: |
|
| 查看次数: |
13351 次 |
| 最近记录: |