行内式链接
链接是文档的血管。没有链接,一份文档只是一堆并列的说明;有了链接,读者才能从「怎么用」跳到「为什么这样设计」,从一句结论跳到出处。Markdown 提供了三种写链接的方式,行内式最直接:文字和地址写在一起,一眼看过去就知道点进去是什么。这一页讲清它的确切语法,尤其是地址里出现空格、括号时该怎么办——那正是绝大多数「链接点不动」的根源。
方括号里放显示文字,圆括号里放地址,两者紧挨着写:
[Coffic 官网](https://coffic.cn "标题可选")
<p><a href="https://coffic.cn" title="标题可选">Coffic 官网</a></p>
渲染出来就是一个普通的 <a> 元素。圆括号里除了地址,还可以再写一段用引号包起来的标题(title),它不显示在正文里,但鼠标悬停或被读屏软件朗读时会作为补充说明出现。标题是可选的,地址后面直接闭合圆括号也合法。
显示文字会被当作行内内容继续解析,所以里面可以放强调、也可以放行内代码:
参见 [**API 参考**](https://example.com/api) 与 `getUser()` 的说明。
<p>参见 <a href="https://example.com/api"><strong>API 参考</strong></a> 与 <code>getUser()</code> 的说明。</p>
这既是便利也是陷阱:显示文字里的 ] 必须成对,否则解析器会提前收尾,把后面的内容甩到括号外面。
地址里的特殊字符
链接地址里最常见的两类麻烦是空格和括号。空格必须写成 %20,或者干脆用尖括号把整个地址包起来:
[下载示例](<./my file.zip>)
<p><a href="./my%20file.zip">下载示例</a></p>
尖括号写法更好:它把原样的地址和解析器看到的地址分开,括号里的内容原封不动地成为地址,内部的空格、括号都不用操心。
括号则相反,它在地址里是合法的,解析器会自动配对:
[维基条目](https://zh.wikipedia.org/wiki/括号_(消歧义))
相对地址与锚点
同一份仓库内部的文档之间,用相对地址最省事——仓库换了域名,链接也不会失效:
[上一篇](./syntax-highlighting.mdx) 与[本页小节](https://example.com#syntax)
相对地址是相对于当前文件所在目录解析的,不是网站根目录。文件一挪动链接就会断,把长文拆成多个文件时,链接要跟着目录结构一起维护。
| 写法 | 实际渲染 | 原因 |
|---|---|---|
[文字](https://x.com/a b) | 不是链接 | 地址含空格,需编码或用尖括号包裹 |
[文字](https://x.com/a(b) | 不是链接 | 括号不配对 |
[文字](https://x.com/a(b)c) | 正常链接 | 地址里的括号会自动配对 |
[文字](url "标题" '另一个') | 不是链接 | 标题只能有一组引号 |
[见 [注1]](https://x.com) | 文字为「见 [注1]」 | 文字里的方括号要成对 |
地址里出现空格,链接会整个失效。 而且它失效的方式很有迷惑性:解析器不会报错,而是把能识别的部分当成一个自动链接,剩下的字符留在正文里,看起来像「链接只链接了一半」。
把下面这句话改写成 Markdown,要求:「下载示例」链接到 my file.zip,地址含空格请用尖括号包裹;「[完整说明]」要显示成带方括号的文字并指向 https://coffic.cn/docs;官网地址保持可点击。
点击「下载示例」获取 my file.zip,或者阅读 [完整说明] 了解细节,官网是 https://coffic.cn。
解题思路: 行内式链接的语法是「方括号写显示文字 + 圆括号写地址」。本题有两个陷阱:地址里的空格必须用尖括号包裹,否则链接失效;显示文字里的方括号要让解析器知道它是文字的一部分,办法是让它成对出现。
详细步骤:
- 把「下载示例」放进方括号作为显示文字,再在圆括号里写地址。地址写成
<my file.zip>,用尖括号把带空格的地址整体包起来,空格就被保留为%20,链接不会散架。 - 显示文字里的方括号要让解析器知道它是文字的一部分:把整段方括号再套一层,也就是「一个左括号接
[完整说明]接一个右括号」,后面紧跟地址。解析器读到内层右括号时发现后面紧跟着另一个右括号,于是认为方括号已闭合,内层方括号便作为普通文字保留下来。 - 官网地址不含空格,直接用圆括号写即可,不需要尖括号。
- 检验:渲染后两个链接都可点,下载地址指向
my%20file.zip,而「[完整说明]」的方括号确实显示了出来。
最终答案:
点击[下载示例](<my file.zip>)获取,或者阅读[[完整说明]](https://coffic.cn/docs)了解细节,官网是 [https://coffic.cn](https://coffic.cn)。读完这一页,你应当能写出带标题、带强调文字的行内链接,能在地址含空格时主动用尖括号包裹,能解释为什么显示文字里的方括号必须成对,也能在「链接点不动」时依次排查空格、括号和引号。接下来加链接时,你会先把地址里的特殊字符处理干净,再考虑显示文字好不好看。
