离线 Markdown 链接检查
检查 Markdown 链接、图片、引用和文档内标题锚点,不请求目标地址、不执行内嵌 HTML。
报告检查哪些内容
解析器读取行内与引用链接、自动链接、图片以及原始 HTML 的链接和图片属性。报告列出每个目标、解析后的 URL、类型和问题代码,检查空目标、URL 空白、无效百分号编码、模板占位符、不支持的协议和未定义显式引用。代码块与行内代码不参与检查。
文档锚点与基础 URL
标题锚点采用 github-slugger 2,支持重复标题后缀及中文标题。工具也收集 HTML id 和命名锚点,并报告重复 ID。片段检查仅针对 #链接和解析到同一文档 URL 的链接。可选 HTTP/HTTPS 文档 URL 用于解析相对路径,不会请求该地址。
语法结果不代表 HTTP 状态
syntax-ok 仅表示本地检查未发现问题。externalStatus 始终为 not-requested:工具不验证 200/404、DNS、重定向、远端片段或磁盘上的相对文件。标题 ID 使用本页说明的本地模型,可能与实际发布平台不同。Markdown 在 Worker 内作为文本解析,HTML 不会插入当前页面。
处理限制
输入上限为 200,000 个 UTF-16 单位、5,000 个提取链接和 100,000 个 HTML 节点。处理可取消,并设 5 秒期限。未定义的 [文字][引用] 会报告;没有定义的普通 [文字] 可以是正常 Markdown 文本,不会被一律当作错误。
常见问题
检查链接会访问目标网站吗?
不会。工具不请求输入目标,也不加载粘贴的图片、脚本或样式。
未定义引用与 404 有什么不同?
未定义引用是文档语法问题,404 是服务器响应。本工具不请求服务器,报告会明确保留两者区别。
输入会上传或保存吗?
不会。处理在本机 Web Worker 中进行,不向 API 上传文本,也不写入本地存储。更改选项会取消旧任务并清除旧结果。
其他语言
参考资料
我们如何确保结果正确
我们使用以下自动化测试验证此工具。下方保留测试用例的原始名称,便于查看实际断言和复现。
- 验证方法
- 检查内联、引用、图片链接和本地锚点,核对相对 URL、重复标题和缺失引用。
- 对比依据
- 明确 Markdown/锚点样本;测试断言不发起网络请求。
- 验证范围
- 仅校验文档内结构;外部链接没有请求时不会声称 HTTP 可达。
测试源码与用例(点击文件名查看)
-
markdown-links-tools.test.js
- Markdown inline, reference, autolink and image targets are resolved without network access
- GitHub-style duplicate headings, CJK slugs and explicit HTML anchors are checked
这些测试覆盖列出的样本和边界,不代表所有输入都已证明正确。往返测试和使用同一依赖库的检查,不属于独立交叉验证。