如何通过pre-commit让check-yaml忽略特定文件或代码行?
解决check-yaml钩子忽略mkdocs.yml或特定行的问题
方法一:在pre-commit配置中排除整个mkdocs.yml文件
.ruffignore和pyproject.toml里的exclude字段仅对Ruff生效,check-yaml属于pre-commit钩子,需在.pre-commit-config.yaml中单独配置排除规则:
找到check-yaml的钩子条目,添加exclude字段指定要忽略的文件:
repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 # 替换为你实际使用的版本号 hooks: - id: check-yaml exclude: ^mkdocs.yml$
方法二:允许check-yaml识别Python标签(无需忽略文件)
报错根源是check-yaml默认禁用了PyYAML的不安全构造器(比如!!python/name这类Python特定标签),给钩子添加--unsafe参数即可允许加载这类标签:
repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 # 替换为你实际使用的版本号 hooks: - id: check-yaml args: [--unsafe]
这种方式既不用忽略整个配置文件,也能让check-yaml通过对包含Python标签的mkdocs.yml的检查。
内容的提问来源于stack exchange,提问作者Soerendip
相关产品推荐
相关产品推荐

