我使用以下linter来检查我的yml是否有效:http://www.yamllint.com/
我尝试过添加内联评论,但会将其删除。我在这里阅读了规范http://www.yaml.org/spec/1.2/spec.html#id2780069
我是否更正,以下内容实际上是有效的,并且删除评论后,linting网站是错误的?
cache:
paths:
- node_modules/ # some comment here
答案 0 :(得分:6)
您的来源是正确的。如果你想保留评论来运行这样的检查,或者重新格式化保留评论,那么使用基于ruamel.yaml
的小型Python程序,它可以保留你对往返的评论并规范化缩进(免责声明:我是ruamel.yaml
)的作者:
import sys
from ruamel.yaml import round_trip_dump
from ruamel.yaml.util import load_yaml_guess_indent
with open(sys.argv[1]) as fp:
data, ind, bsi = load_yaml_guess_indent(fp)
round_trip_dump(data, sys.stdout, indent=ind, block_seq_indent=bsi)
只需在命令行上提供输入文件作为参数。
这比所有基于Web的检查程序的优势在于,您可能的敏感数据无法“发布”。
它还优于yamllint.com
和其他一些网站,它支持YAML 1.2。 yamllint.com
仅支持YAML 1.1,如果您使用明确的YAML文档指令尝试它,您可以看到:
%YAML 1.2
---
a: 0o7
...
该网站抛出了不支持该版本的错误。哪个优于例如http://yaml-online-parser.appspot.com/确实(指令被忽略,解析为好像是YAML 1.1,八进制整数标量就好像它是一个字符串标量)或YAML的半成就实现http://beautifytools.com/yaml-validator.php(错误:无法解析) )