Markdown Linter

🔗 文档链接完整性守护者

轻量级 Markdown 文档验证工具,可检测断链、缺失文件引用及基础语法问题,保障文档完整性。

收藏
3.1k
安装
1.5k
版本
1.0.0
CLS 安全性认证2026-07-14
点击查看完整报告 >

使用说明

核心用法

markdown-linter 是一款专注于本地 Markdown 文件质量保障的轻量级验证工具,主要面向开发者文档维护场景。其核心功能围绕三类检查展开:

链接有效性验证:扫描 [text](path) 格式的内部链接,确认引用的本地文件真实存在,有效避免 MEMORY.md、SKILL.md 等配置文档中出现失效引用。

标题层级检查:验证 Markdown 标题从 H1 到 H6 的层级递进逻辑,防止出现跳跃式标题结构(如 H1 后直接接 H3),提升文档可读性。

代码块规范检查:识别未标注编程语言的代码围栏(```),提示补充语言标识符以优化渲染效果。

使用方式简洁,通过 Node.js 模块调用:const linter = require('./index'); await linter.scan('.'),支持递归扫描目录并返回结构化 JSON 报告。

显著优点

  • 专注本地场景:不依赖外部网络,纯离线检测,响应速度快,适合 CI/CD 流水线集成
  • 精确错误定位:输出包含文件路径、行号、具体问题描述,便于快速修复
  • 轻量零依赖:实现简单,易于嵌入各类文档项目
  • 结构化输出:JSON 格式便于程序化处理和自动化报告生成

潜在局限

  • 功能范围较窄,不涉及 Markdown 渲染兼容性、HTML 嵌入安全、外部 URL 可达性等深度检查
  • 代码块语言检测仅为建议性质,无法验证标识符准确性
  • 缺乏配置化能力(忽略规则、自定义路径映射等)
  • 当前实现基于 Node.js require,对 ESM 项目可能需要适配

适合人群

  • 维护多文档仓库的技术写作者
  • 需要保障内部链接完整性的开源项目维护者
  • 构建文档质量门禁的 DevOps 工程师

常规风险

风险等级较低。工具仅执行本地文件系统读取操作,不执行任意代码、不发起网络请求。需注意扫描路径权限控制,避免无意暴露敏感文件路径信息到输出报告中。

安全解读

核心用法

markdown-linter 是一款轻量级 Markdown 文件验证工具,专注于维护文档内部一致性。核心工作流程为:

1. 递归扫描:遍历指定目录下的所有 .md 文件
2. 链接验证:使用正则 \[([^\]]+)\]\(([^)]+)\) 匹配 Markdown 链接,过滤外部协议(http/https/mailto 等)后,通过 fs.existsSync() 验证本地文件存在性

3. 层级检查:验证标题层级逻辑(如 H1 → H2 的合理递进)

4. 代码块检查:确保代码块包含语言标识符

调用方式简洁:

const linter = require('./index');
const results = await linter.scan('.');

返回结构化 JSON 报告,包含文件总数、断链详情(文件路径、行号、目标链接)及语法错误列表。

显著优点

| 维度 | 优势 |
|------|------|
| **安全性** | 零第三方依赖,纯 Node.js 内置模块(fs, path),无网络请求、无子进程、无动态代码执行,获 S+ 安全评级 |
| **可预测性** | 运行时行为完全透明,仅涉及本地文件读取,无敏感信息收集 |
| **易部署** | 单文件核心逻辑(147 行),无复杂配置,即装即用 |
| **专注性** | 聚焦本地链接完整性,不涉足复杂 Markdown 语法解析,轻量高效 |

潜在缺点与局限性

  • 功能边界:仅验证本地文件链接,不检查外部 URL 可访问性,也不校验锚点(#heading)是否真实存在
  • 算法局限:基于正则匹配,可能误处理嵌套括号或复杂 URL 编码场景
  • 性能上限:O(N×M) 时间复杂度,大型文档库(数千文件)扫描效率待验证
  • 配置缺失:暂不支持忽略特定目录、文件扩展名自定义或结果输出格式定制

适合人群

  • 技术文档维护者:确保 README、API 文档、Wiki 内部引用不失效
  • 开源项目贡献者:提交前本地检查,避免断链进入代码库
  • 个人知识库管理:Obsidian、Notion 导出 Markdown 后的完整性校验
  • CI/CD 集成:作为预提交钩子或构建流程的轻量检查环节

常规风险

| 风险类型 | 说明 | 缓解措施 |
|----------|------|----------|
| 来源可信度 | T3 级别(个人开发者 wanng-ide),虽当前版本安全,但长期维护存不确定性 | 锁定版本使用,关注更新日志 |
| 许可证缺失 | 当前未指定开源许可证,存在合规模糊地带 | 建议联系作者确认或选择 MIT/Apache-2.0 替代方案 |
| 测试覆盖不足 | 现有测试仅覆盖基础场景,边界情况(循环引用、特殊字符路径)验证不充分 | 生产环境使用前补充自定义测试用例 |
| 功能单一性 | 不替代完整 Markdown Linter(如 markdownlint-cli),复杂语法错误无法捕获 | 与专业工具配合使用 |

总体而言,这是一款安全基线极高、功能精准聚焦的文档维护辅助工具,适合对供应链安全敏感、需求明确克制的场景。

Markdown Linter 内容

scripts文件夹
手动下载zip · 4.2 kB
test.jstext/javascript
请选择文件