引用式链接
行内式链接把文字和地址捆在一起,写起来痛快,读起来也直接,可一旦同一个地址在文中出现十次,这十处就各自记着一份完整地址。改一次域名要动十处——这正是引用式链接要解决的问题:正文里只写一个标记,地址统一收在文档末尾集中管理。这一页讲清它的三种写法、定义该放在哪里,以及它到底在什么场景下值得使用。
引用式链接由「引用」和「定义」两部分组成。正文里写 [显示文字][标记],标记在文档末尾用 [标记]: 地址 定义:
[文档首页][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 上的示例仓库。
解题思路: 引用式链接由「正文里的引用」和「文末的定义」两部分组成。三个链接地址各不相同,所以各配一个标记;第二个链接的显示文字恰好和标记相同,可以用快捷写法省掉方括号里的文字。
详细步骤:
- 给三个地址各起一个简短标记,例如
home、search、repo。标记是文档内部用的名字,只要和文末的定义对应即可。 - 正文里逐个写引用:「文档首页」写成
[文档首页][home],「搜索服务」写成快捷形式[search],「示例仓库」写成[示例仓库][repo]。 - 在文末逐行写定义,每行一个,格式是「方括号里的标记 + 冒号 + 空格 + 地址」。定义行必须顶格写,缩进四格会被当成代码块。
- 快捷写法的标记要在正文里一眼看得出是个链接,
search这种英文单词符合这个要求。 - 检验:渲染后三个位置都是可点链接,而文末那三行定义不会出现在页面上。
最终答案:
请访问 [文档首页][home],也可以看看 [search] 上的搜索服务,参考 [示例仓库][repo]。
[home]: https://example.com
[search]: https://search.example.org
[repo]: https://github.com读完这一页,你应当能写出完整、折叠、快捷三种引用式链接,能把定义集中放在文末,能解释标记为什么可以大小写不敏感、以及缩进四格为什么会让定义失效,也能在「链接不见了」时想到去检查标记对没对上。接下来写长文档,你会开始有意识地把重复的地址收进文末,让正文只剩下该被读的文字。
