对 YAML 文件进行 lint 的程序?
Program to lint YAML files?
所以我的团队目前正在开发一个使用大量 YAML 的应用程序,我们需要为通用格式强制执行一些规则。最好是一个命令行程序,这样我们就可以将它插入我们的 CI.
最重要的是,我们要强制 2-space 缩进和列表缩进,如下所示:
list:
- not indented
- not indented # this is BAD
list:
- indented
- indented # this is GOOD
mapping:
5 space indentation # this is BAD
此外,如果能防止尾随 space 和无意义的语法,那就太好了。
我找到了一些检查 YAML 有效性(即是否可以加载它)的网站——但没有 linting。 yaml-lint 也是如此,一个 Ruby 应用程序,只有 "checks if your YAML files can be loaded".
是否有用于 YAML 的 linter,类似于 python 的 flake8 或 javascript 的 eslint?
您正在寻找 yamllint。在你的 CI:
sudo pip install yamllint
yamllint file1.yml ...
它是高度可配置的。具体来说,对于 2-space 缩进和强制列表
缩进,conf 将是:
rules:
indentation: {spaces: 2, indent-sequences: yes}
(它还处理尾随 spaces、行长度等)
玩得开心!
所以我的团队目前正在开发一个使用大量 YAML 的应用程序,我们需要为通用格式强制执行一些规则。最好是一个命令行程序,这样我们就可以将它插入我们的 CI.
最重要的是,我们要强制 2-space 缩进和列表缩进,如下所示:
list:
- not indented
- not indented # this is BAD
list:
- indented
- indented # this is GOOD
mapping:
5 space indentation # this is BAD
此外,如果能防止尾随 space 和无意义的语法,那就太好了。
我找到了一些检查 YAML 有效性(即是否可以加载它)的网站——但没有 linting。 yaml-lint 也是如此,一个 Ruby 应用程序,只有 "checks if your YAML files can be loaded".
是否有用于 YAML 的 linter,类似于 python 的 flake8 或 javascript 的 eslint?
您正在寻找 yamllint。在你的 CI:
sudo pip install yamllint
yamllint file1.yml ...
它是高度可配置的。具体来说,对于 2-space 缩进和强制列表 缩进,conf 将是:
rules:
indentation: {spaces: 2, indent-sequences: yes}
(它还处理尾随 spaces、行长度等)
玩得开心!