核心用法
markdown-lint skill 是一套面向工程团队的 Markdown 标准化解决方案,核心解决三个场景:新仓库初始化时建立格式基线、存量文件的批量检查与修复、以及跨仓库的标准迁移。它围绕 markdownlint-cli2 构建,并配套自定义 pre-commit 钩子禁止水平线(---)滥用,形成「工具配置 + 代码提交拦截」的双重保障。
显著优点
1. 开箱即用的 CJK 优化:默认关闭 MD013(行长度)、MD060(表格管道符间距)等对中文内容极不友好的规则,避免误报。
2. 水平线专项管控:通过独立脚本 check-horizontal-rules.sh 禁止正文中的 ---,但保留 YAML frontmatter,解决文档视觉风格碎片化问题。
3. monorepo 友好:支持 #repos、#node_modules 排除语法,避免对子仓库或依赖目录重复 lint。
4. 自动化修复优先:--fix 参数可自动处理大部分格式问题,显著降低人工介入成本。
潜在缺点与局限性
- 依赖 Node.js 生态:需安装 Node 或借助
npx,在纯 Python 或 Rust 仓库中增加环境复杂度。 - Windows 兼容性短板:Bash 脚本依赖 Git Bash/WSL,纯 Windows CMD/PowerShell 环境体验受限。
- 规则豁免需人工判断:MD025、MD045 等规则是否禁用,需根据「自研文档 vs 导入 vendor 文档」人工决策,无法全自动。
- 部分规则不可自动修复:MD040(代码块无语言标识)等需手动添加
text等标签。
适合人群
- 技术文档工程师、开发者体验(DX)团队,需要为多语言仓库建立统一的 Markdown 提交规范。
- 开源项目维护者,希望在 CI 前通过 pre-commit 拦截格式问题,减少 review 噪音。
常规风险
- 配置漂移:
.markdownlint.json若分散在多个仓库,版本同步需依赖人工或模板仓库机制。 - frontmatter 误删:批量移除水平线的 awk 脚本若遇到非标准 frontmatter 格式(如首行非
---),可能误删内容,建议先备份或 dry-run。 - hook 版本滞后:
pre-commit autoupdate若被遗漏,可能长期锁定旧版 markdownlint,错失新规则或性能改进。