Markdown Linter

即时检查 Markdown 的格式与风格错误。实时显示规则 ID、行号和可点击导航的检查结果。在浏览器中运行,数据不离开本地。

  • 在浏览器中处理
  • 数据不离开你的设备
  • 免费 · 无需注册
点「清除」,或焦点在工具内时按 Ctrl/⌘+L,清除输入、结果和摘要。排队的检查会取消,较早的结果与复制反馈不会回填。
「复制结果」将每个可见问题复制成一行文本:行号、方括号中的规则 ID、描述、详情和上下文。不包含规则别名。没有问题时,按钮不复制任何内容。
一次编辑一份 Markdown,输入后 300 毫秒按 markdownlint 默认规则检查;初始示例故意含有问题。文内 markdownlint-disable 和 markdownlint-enable 注释可以停用规则。页面不提供配置文件上传或自动修复。
检查结果 每个问题显示规则 ID、行号、描述,以及存在的详情、上下文和别名。点问题可在编辑器中选中对应行。描述和详情由 markdownlint 提供,使用英语;检查只报告问题,不修改文档。
输入内容后结果将显示在此处。
示例、说明与常见问题 带实际输出的示例、与同类工具的差别,以及常见问题。

检测内容

检查器应用完整的 markdownlint 规则,包括:

  • MD001 — 标题层级每次只能增加一级
  • MD009 — 行尾不应有空格
  • MD010 — 不使用制表符(应使用空格)
  • MD012 — 不连续出现多个空行
  • MD022 — 标题前后应有空行
  • MD025 — 文档中只能有一个顶级标题
  • MD031 — 代码围栏前后应有空行
  • MD034 — 不使用裸 URL,应使用链接语法
  • MD041 — 第一行应为顶级标题

隐私

所有处理均在客户端完成,Markdown 内容不会被上传或存储。

相关工具

示例:一份 CHANGELOG

输入:

# Changelog

## 1.2.0

### Added

- Export button

## 1.1.0

### Added

* Dark mode

See https://example.com/releases

结果(markdownlint 0.40,默认规则):

L13  MD004 / ul-style            Unordered list style — Expected: dash; Actual: asterisk
L11  MD024 / no-duplicate-heading Multiple headings with the same content
L15  MD034 / no-bare-urls         Bare URL used
  • 两个版本下都有「Added」标题,所以触发 MD024。这正是 Keep a Changelog 的标准写法;在你自己的配置里写 "MD024": { "siblings_only": true },就允许不同父标题下出现同名标题。
  • MD004 要求整篇文档用同一种列表符号;第一个列表用了 -,所以 * 被标出。
  • MD034 要求把裸 URL 写成 <https://example.com/releases> 或 Markdown 链接。

这里改不了的默认设置

工具按默认设置运行 markdownlint 默认启用的全部规则(见 markdownlint rules)。页面没有配置项,有两条默认规则经常带来噪音:

  • MD013 行长度上限 80 个字符。一行 104 个字符的英文段落会报 Expected: 80; Actual: 104。第 80 列之后没有空格的长行不报,所以不含空格的长中文行通常能通过。
  • MD024 会标出文档里任何重复的标题文字,比如上面的 CHANGELOG。

想按自己的规则检查,把配置写进 .markdownlint.json,在本地或 CI 里运行 markdownlint-cli2:

{
"MD013": { "line_length": 120 },
"MD024": { "siblings_only": true }
}

markdownlint 会跳过文件开头的 YAML front matter,其中的 title 在 MD041 里算作一级标题。

FAQ

我的内容会上传到服务器吗?

不会。所有检查在浏览器中通过 JavaScript 完成,Markdown 内容不会离开你的设备。

检查器会检测哪些规则?

检查器运行 markdownlint 的全部标准规则,超过 50 项检查,涵盖标题层级、行尾空格、空行数量、裸 URL、列表格式、代码围栏格式等。

MD001 这样的规则 ID 是什么意思?

规则 ID 遵循 markdownlint 约定:MD001 表示「标题层级递进」,MD009 表示「禁止行尾空格」,MD041 表示「首行应为一级标题」等。

点击结果可以跳转到对应行吗?

可以。点击任意检查结果,编辑器会自动滚动到对应行并选中该行,方便立即修改。

这与命令行 markdownlint 工具有何区别?

命令行工具可集成到构建流程并检查磁盘上的文件。本工具适合在编写或审阅 Markdown 时快速检查,无需安装任何软件。