silverstripe / markdown-php-codesniffer
一个围绕 squizlabs/PHP_CodeSniffer 的包装器,允许您在 markdown 文件中对 PHP 隔离代码块进行代码检查
Requires
- php: ^8.0
- league/commonmark: ^2.4
- squizlabs/php_codesniffer: ^3.7
Requires (Dev)
- phpunit/phpunit: ^9.6
README
这是一个围绕 squizlabs/PHP_CodeSniffer
的包装器,允许您在 markdown 文件中对 PHP 隔离代码块进行代码检查。
安装
与 squizlabs/PHP_CodeSniffer
不同,这个包不是打算全局安装的 - 您应该将其作为项目的一个开发依赖安装。
composer require --dev silverstripe/markdown-php-codesniffer
使用方法
要检查 markdown 文件,请在 vendor bin 目录中运行 mdphpcs
# sniff a directory vendor/bin/mdphpcs /path/to/docs # sniff a specific file vendor/bin/mdphpcs /path/to/docs/file.md
phpcs
和 phpcbf
命令在 squizlabs/PHP_CodeSniffer
中提供的许多选项也适用于 mdphpcs
。有关更多详细信息,请参阅PHP_CodeSniffer 使用说明。
自动修复违规
某些违规可以自动修复,PHP_CodeSniffer 将在 CLI 输出中包含有关这些违规的信息。要修复它们,只需将 --fix
选项传递给 mdphpcs
vendor/bin/mdphpcs /path/to/docs --fix
这相当于在常规 PHP 文件上使用 phpcbf
命令。
检查其他语言
squizlabs/PHP_CodeSniffer
支持检查除 PHP 之外的一些语言。理论上,这个工具也可以这样做。您需要通过 --linting-language
选项传递语言(就像它在 markdown 语言提示中那样书写)。
vendor/bin/mdphpcs /path/to/docs --linting-language=JS
检查规则
如果您有一个 默认配置文件 或通过 --standard
选项显式传递一个标准,则这些规则将用于检查 - 但请注意,一些规则可能不适合检查代码块。
例如,PSR12.Files.FileHeader.HeaderPosition
规则将始终失败检查,因为我们需要在传递给 squizlabs/PHP_CodeSniffer
的内容中包含代码块内容之前的空行,以便它可以正确报告原始 markdown 文件中每个违规的行。
如果您没有指定标准并且没有默认配置文件,将使用本包中包含的默认配置 文件。此配置基于 PSR12,但进行了一些排除,使其适合用于检查代码块。