跳转到内容

REF-005 锚点

验证 Markdown 链接中的锚点片段(./file.md#section#section# 之后的部分)指向目标文件中实际存在的标题。无匹配标题时,会报告为 error。锚点采用与 GitHub 相同的 slug 生成规则,从标题派生而来。

修改章节标题文本后,指向它的锚点链接会悄无声息地损坏。由于链接目标文件本身仍然存在,REF-001 链接断裂 不会捕获此类问题。AI 生成文档中也可能混入不存在的锚点。锚点的有效性无法仅靠链接存在性验证来检测,因此需要独立规则。

字段类型必填说明
filesstring应用此规则的文件 glob

省略全部选项也可工作。

docs/architecture.md:
## 系统构成
...
docs/overview.md:
详见 [系统概要](./architecture.md#系统概要)

./architecture.md 中存在 ## 系统构成 但没有 ## 系统概要,因此判定为违例。

docs/overview.md
line 1 error Anchor "#系统概要" does not match any heading in ./architecture.md REF-005

将链接对齐到存在的标题名。

docs/overview.md:
详见 [系统构成](./architecture.md#系统构成)
{
"rule": "ref005",
"options": {
"files": "docs/**/*.md"
}
}