Lruihao / hugo-blog

一个 CV 程序猿的前端博客😉
https://lruihao.cn
MIT License
20 stars 8 forks source link

markdownlint 研究 #81

Closed Lruihao closed 8 months ago

Lruihao commented 9 months ago
Lruihao commented 9 months ago

Note 以下问答来自 AI gpt-3.5-turbo

markdownlint-cli 和 markdownlint-cli2 的区别

Markdownlint-cli 和 Markdownlint-cli2 是两个命令行工具,用于在命令行中运行 Markdownlint 进行 Markdown 文件的静态代码分析和规范检查。这两个工具的区别在于它们基于的 Markdownlint 版本和功能上的差异。

  1. Markdownlint-cli: Markdownlint-cli 是基于 Markdownlint v0.23.1 或更早版本的命令行工具。它提供了基本的 Markdown 文件检查功能,可以使用预定义的规则集或自定义规则对 Markdown 文件进行代码风格和规范的检查。Markdownlint-cli 使用简单,适用于基本的 Markdown 文件检查需求。

  2. Markdownlint-cli2: Markdownlint-cli2 是基于较新版本的 Markdownlint(v0.27.0 或更新)的命令行工具。相对于 Markdownlint-cli,Markdownlint-cli2 提供了更多的功能和灵活性。它支持更多的规则和配置选项,可以更精确地控制代码检查的行为。Markdownlint-cli2 还引入了一些新的功能,如自动修复(通过 --fix 参数)和在控制台中展示代码检查结果等。

总的来说,Markdownlint-cli2 是对 Markdownlint-cli 的改进和扩展,提供了更强大的功能和更好的灵活性,适用于更复杂的代码检查需求。但如果你只需要基本的 Markdown 文件检查功能,并且使用较早版本的 Markdownlint,那么 Markdownlint-cli 也可以满足你的需求。

Lruihao commented 9 months ago

自定义规则

In addition to built-in rules, custom rules can be used to address project-specific requirements. To find community-developed rules use keyword markdownlint-rule on npm. To implement your own rules, refer to CustomRules.md.

更多详见 https://github.com/DavidAnson/markdownlint#readme

Lruihao commented 9 months ago

markdownlint cli 历史

根据 markdownlint 作者 David Anson 博客得知,大概在 2015 年左右 Igor Shubovych 和他探讨了开发 CLI 工具的想法,当时作者还没做好准备,于是 Igor 独自开发了 markdownlint-cli 这个 CLI 工具,然后经过两年的发展有了越来越多的人开始使用 markdownlint-cli,于是 David 开始给 markdownlint-cli 项目贡献代码添加新功能,并在之后三年里成为了主要的维护人员,直到2020年,David 觉得在别人的项目中,很多事情不太好改变(可能向后兼容的问题),于是他自己重新建立了一个名叫 markdownlint-cli2 的项目,在 markdownlint-cli 的优秀之上又做了新的改进,使其拥有更快的执行速度、更灵活的配置、更少的依赖等优点。

目前两个工具都依然随着 markdownlint 的更新而更新,个人觉得旧项目如果使用的 markdownlint-cli 则无需更改以避免出现未知的问题,新引入的项目,可以考虑使用更强大的 markdownlint-cli2。

Lruihao commented 9 months ago

安装

npm install markdownlint-cli2 --save-dev

配置快捷命令

"lint:md": "markdownlint-cli2 \"./content/**/*.md\"",
"fix:md": "npm run lint:md -- --fix"
Lruihao commented 8 months ago

安装 husky 和 lint-staged

Lruihao commented 8 months ago

引入 AutoCorrect

https://github.com/huacnlee/autocorrect#use-in-npm

参考