Markdown 检查
VMark 内置一套 lint 引擎,专门捕获 正确性问题,而非样式偏好。Lint 按需运行(Cmd-Shift-L 或 工具 → 检查 Markdown),结果以行号槽中的波浪线、状态栏徽章和 F2 导航的形式呈现。
Lint 是什么,不是什么
VMark 的 lint 是 正确性 检查器:
- 损坏的交叉引用
- 未定义的链接 / 脚注引用
- 未关闭的代码围栏
- 列数不匹配的表格
- 跳级的标题级别(h1 → h3)
- 缺少 alt 文本的图片
- 链接文本为空或
href为空
VMark 的 lint 不是 样式强制器。它不会标记:
- 行长度
- 列表标记样式(
-与*) - 强调标记样式(
_与*) - 标题样式(
#与下划线) - 行尾空白
样式强制请在 VMark 之外使用 prettier --check 等独立工具。
规则参考
| 规则 ID | 严重级别 | 描述 |
|---|---|---|
| E01 | 错误 | 未定义的引用:[link][missing] 指向不存在的定义 |
| E02 | 错误 | 表格行的列数不正确(与表头行不匹配) |
| E03 | 错误 | 反向链接 —— 形如 (text)[url] 而非 [text](url) |
| E04 | 错误 | ATX 标题在 # 后缺少空格(如 ##Heading 应为 ## Heading) |
| E05 | 错误 | 强调标记内有空格 —— * word * 不会渲染为斜体 |
| E06 | 错误 | 未关闭的围栏代码块 —— 文件以未闭合的 ``` 围栏结尾 |
| E07 | 错误 | 链接引用定义重复(同一 [label]: 出现两次) |
| E08 | 错误 | 链接的 href 为空 —— [text]() |
| W01 | 警告 | 跳级的标题(期待 h2,实际是 h3) |
| W02 | 警告 | 图片缺少 alt 文本 —— 无障碍 |
| W03 | 警告 | 未使用的链接引用定义(已定义但从未被链接) |
| W04 | 警告 | 锚点片段不匹配任何标题 —— #section 指向不存在的章节 |
| W05 | 警告 | 链接文本为空 —— [](url) |
| M001 | 错误 | 本地路径上未找到图片文件 |
| M002 | 错误 | 本地路径上未找到链接的文件 |
| Y001 | 错误 | YAML 解析错误(针对 YAML 文件) |
| Y002 | 警告 | YAML 解析警告(针对 YAML 文件) |
触发 Lint
| 触发方式 | 操作 |
|---|---|
Cmd + Shift + L(macOS) / Ctrl + Shift + L(Win/Linux) | 对当前活跃文档运行 lint |
| 工具 → 检查 Markdown | 与快捷键相同 |
F2 | 跳到下一个诊断 |
Shift + F2 | 跳到上一个诊断 |
对于带有文件路径的 markdown 文件,链接存在性检查会与同步规则一起自动运行 —— 见链接检查。
对于 YAML 文件,解析错误在你输入时即时显示在行号槽中,同样的 Cmd-Shift-L 快捷键会填充徽章并启用 F2 导航。
设置
Lint 引擎只有一个面向用户的开关:
- 设置 → Markdown → 启用 Markdown 检查 —— 完全开启或关闭引擎
禁用时,快捷键变为无操作,行号槽中也不会出现诊断。
另请参阅
- 链接检查 —— 损坏的本地链接 / 图片检测
- 设置 → Markdown → Lint