自动链接
前两页讲的链接都要你先写好「显示文字」和「地址」。但有些场景根本不需要显示文字:贴一个裸地址就是要让人复制它,写一个邮箱就是要让人发信。Markdown 为这种场景准备了两套机制——尖括号自动链接和 GFM 字面量自动链接。它们的触发规则看起来简单,实际却有个在中文文档里非常容易踩的坑,这一页会把它讲透。
用尖括号把地址整体包起来,它就变成一个可点的链接,显示文字就是地址本身:
<https://example.com>
<user@example.com>
<p><a href="https://example.com">https://example.com</a>
<a href="mailto:user@example.com">user@example.com</a></p>
邮箱会被自动加上 mailto: 前缀,点开直接进入写邮件的界面。这是尖括号写法最省事的地方:你写的和渲染出来的完全一致,中间没有任何转换风险。
GFM(GitHub Flavored Markdown)扩展提供了更进一步的便利:地址直接写在正文里,不用任何标记,渲染时自动变成链接。
访问 https://example.com 了解更多,联系 user@example.com。
<p>访问 <a href="https://example.com">https://example.com</a> 了解更多,联系 <a href="mailto:user@example.com">user@example.com</a>。</p>
注意它对地址前缀有要求:http://、https:// 开头,或者以 www. 开头的裸域名。写成 example.com 是不会被识别的,必须补上协议头。www. 开头的则会自动补上 http://。
结尾的标点怎么处理
GFM 会把地址末尾的英文标点排除在链接之外,所以句号、问号、逗号不会变成链接的一部分:
见 https://example.com. 和 https://example.com/a)
<p>见 <a href="https://example.com">https://example.com</a>. 和 <a href="https://example.com/a">https://example.com/a</a>)</p>
但这份「排除名单」只覆盖英文标点。中文的句号、顿号、问号,以及中文字符本身,都不在名单里。
地址后面紧跟中文,链接会把中文一起吞进去。 写 https://example.com这是正文,渲染出来链接的地址会变成 https://example.com这是正文(浏览器里显示成百分号编码),「这是正文」这几个字就点不到了。中文全角标点同样会被吞进去——https://example.com。 里的句号也进了地址。
解决办法有两个:一是用尖括号写法 <https://example.com>,尖括号里的内容到右括号为止,绝不外溢;二是干脆用行内式链接,把地址和正文明确分开。
| 写法 | 实际渲染 | 原因 |
|---|---|---|
<https://example.com> | 链接 | 尖括号写法,边界明确 |
https://example.com | 链接 | GFM 字面量自动链接 |
example.com | 不是链接 | 缺协议头,www. 除外 |
www.example.com | 链接,补 http:// | www. 会被识别 |
https://example.com。 | 链接含中文句号 | 全角标点不在排除名单里 |
https://example.com. | 链接不含句号 | 英文标点会被排除 |
把下面这段文字改写成 Markdown,要求:第一个地址用尖括号写法,边界要绝对准确;第二个地址用 GFM 字面量写法,但后面紧跟的中文不能被吞进链接;邮箱两种写法都可以,但要保证点开是发邮件。
文档在 https://example.com/docs 请自行查阅,注意此地址仅供内部使用。联系作者请发邮件到 support@example.com。
解题思路: 第一个地址后面紧跟中文「请自行查阅」,如果用 GFM 字面量写法,中文会被吞进链接里;用尖括号写法,边界就到右尖括号为止,绝不外溢。第二个地址后面紧跟的是英文句号,英文标点本来就在排除名单里,但为了让边界同样明确,也用尖括号包裹最稳妥。
详细步骤:
- 第一个地址写成
<https://example.com/docs>。尖括号里的内容到右尖括号为止,「请自行查阅」留在正文里,不会被算进地址。 - 第二个地址写成
<https://example.com>,同样用尖括号锁住边界,避免以后有人在后面加中文时出问题。 - 邮箱写成
<support@example.com>。尖括号写法会自动补上mailto:,点开直接进入写邮件界面。 - 检验:渲染后三个地址都是可点的链接,地址文本原样显示,「请自行查阅」和「注意此地址仅供内部使用」都留在正文里,没有被并入链接。
最终答案:
文档在 <https://example.com/docs> 请自行查阅,注意此地址仅供内部使用。联系作者请发邮件到 <support@example.com>。读完这一页,你应当能用尖括号写出边界绝对准确的自动链接,能解释 GFM 字面量写法对协议头的要求,能说清英文标点和中文标点在「排除名单」里的差别,也能在地址后接中文时立刻想到改用尖括号。接下来贴地址时,你会先看一眼后面跟的是中文还是英文,再决定用哪种写法。
