Markdown 标题含特殊字符时,自动生成的锚点 ID 可能与目录链接不一致,用 标签手动定义锚点即可解决。

目录

前情提要

在浏览我前几天的一篇博文《Claude Code 终端高效使用指南》时,发现从目录链接无法跳转到标题 "五、快速前缀:/ ! @ 三板斧"

博文目录中的写法:

- [五、快速前缀:`/` `!` `@` 三板斧](#五快速前缀--三板斧)

博文正文标题

## 五、快速前缀:`/` `!` `@` 三板斧

分析问题

问题在于:目录里写的锚点 #五快速前缀--三板斧 和 Markdown 渲染器根据标题自动生成的 HTML id 不一致,导致点击目录链接时找不到目标位置。

标题中含有 /!@ 等特殊符号,渲染器在生成锚点时会如何处理这些字符?——可能直接删除,也可能替换为 -,甚至编码成其他形式。总之,锚点对不上,自然无法跳转

那么,如何准确获知实际的 id?一个更可控的办法是:不依赖自动生成,自己指定。

解决方法

在标题上方放置一个 标签,手动定义锚点 ID:



## 五、快速前缀:`/` `!` `@` 三板斧

目录中直接引用这个自定义 ID:

- [五、快速前缀…](#five-fast-prefix)

你也可以用中文作为 id,比如 id="五快速前缀",但要确保没有空格和特殊符号

效果

markdown锚点

点击目录中"五、快速前缀:/ ! @ 三板斧",可以正常跳转到正文了。


原文地址: http://www.cveoy.top/t/topic/qGHG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录