引用式链接

行内式链接把文字和地址捆在一起,写起来痛快,读起来也直接,可一旦同一个地址在文中出现十次,这十处就各自记着一份完整地址。改一次域名要动十处——这正是引用式链接要解决的问题:正文里只写一个标记,地址统一收在文档末尾集中管理。这一页讲清它的三种写法、定义该放在哪里,以及它到底在什么场景下值得使用。

三种写法

引用式链接由「引用」和「定义」两部分组成。正文里写 [显示文字][标记],标记在文档末尾用 [标记]: 地址 定义:

[文档首页][home]
[搜索引擎][google]

[home]: https://example.com
[google]: https://google.com
<p><a href="https://example.com">文档首页</a>
<a href="https://google.com">搜索引擎</a></p>

标记也可以省略掉显示文字,于是有两种简写。折叠式把方括号留空,文字直接用标记本身:

[home][] 与 [home]

快捷式连方括号都省掉,只写标记:

见 [home] 说明。

三种写法的渲染结果完全一样,区别只是正文里写多少字符。折叠式适合「显示文字和标记恰好相同」的情况,短捷式最省事,但标记必须一眼看得出是个链接,否则读者很难意识到这里可以点。

定义放在哪里

定义可以放在文档的任何位置,不必非塞到末尾——解析器会通篇扫描。惯例是放在文件最末尾,或者集中放在文末的「参考链接」小节里,这样正文保持干净。

定义本身不会出现在渲染结果里,它只是给解析器看的数据。这一点很关键:读者看到的只有链接本身。

什么时候用

引用式链接的价值在重复和集中管理两个场景最明显。同一篇文章里反复指向同一个站点时,正文写成 [官网][site] 配上文末一条 [site]: https://coffic.cn,改地址时只动一行。

但它也有代价:读者在正文中看不到真实地址,想知道链接指向哪里就得翻到文末;把地址写成裸文本的好处是读者能一眼抄下来。所以地址本身就是重要信息时(下载链接、接口地址、邮箱),用行内式或自动链接更合适;地址只是背景信息时,引用式更好。

常见坑

写法实际渲染原因
[文字][ref] 配 [ref]: https://x.com正常链接完整写法
[ref][] 配 [ref]: https://x.com正常链接折叠写法
[ref] 配 [ref]: https://x.com正常链接快捷写法
[文字][missing]原样文字没有对应定义
缩进四格写定义变成代码块四格缩进优先于引用定义
[文字][REF] 配 [ref]: ...正常链接标记不区分大小写

练习

把下面这段内容改写成 Markdown,要求:三个链接都用引用式写法,标记写在方括号里;把三条定义统一放到文末;其中「search」这个链接的显示文字与标记相同,用快捷写法。

请访问 example.com 的文档首页,也可以看看 search 上的搜索服务,参考 github.com 上的示例仓库。
快捷写法

解题思路: 引用式链接由「正文里的引用」和「文末的定义」两部分组成。三个链接地址各不相同,所以各配一个标记;第二个链接的显示文字恰好和标记相同,可以用快捷写法省掉方括号里的文字。

详细步骤:

  1. 给三个地址各起一个简短标记,例如 home、search、repo。标记是文档内部用的名字,只要和文末的定义对应即可。
  2. 正文里逐个写引用:「文档首页」写成 [文档首页][home],「搜索服务」写成快捷形式 [search],「示例仓库」写成 [示例仓库][repo]。
  3. 在文末逐行写定义,每行一个,格式是「方括号里的标记 + 冒号 + 空格 + 地址」。定义行必须顶格写,缩进四格会被当成代码块。
  4. 快捷写法的标记要在正文里一眼看得出是个链接,search 这种英文单词符合这个要求。
  5. 检验:渲染后三个位置都是可点链接,而文末那三行定义不会出现在页面上。

最终答案:

请访问 [文档首页][home],也可以看看 [search] 上的搜索服务,参考 [示例仓库][repo]。

[home]: https://example.com
[search]: https://search.example.org
[repo]: https://github.com

小结

读完这一页,你应当能写出完整、折叠、快捷三种引用式链接,能把定义集中放在文末,能解释标记为什么可以大小写不敏感、以及缩进四格为什么会让定义失效,也能在「链接不见了」时想到去检查标记对没对上。接下来写长文档,你会开始有意识地把重复的地址收进文末,让正文只剩下该被读的文字。

发现内容有问题?

告诉我们哪里需要改进。