# 自动链接

自动链接 (opens new window)<>标签中的绝对 URI 和电子邮件地址。它们在链接标签中最终会被解析为 URL 或电子邮件地址。
URI 自动链接 (opens new window)<,后面是 >绝对 URI (opens new window) 组成。它被解析为 URI 的链接,URI 作为链接的标签。
出于这些目的,绝对 URI (opens new window) 由一个 scheme (opens new window) + 冒号(:)后跟零个或多个字符而不是 ASCII 空格 (opens new window)和控制字符, 和<>组成。如果 URI 包含这些字符,则必须对其进行百分比编码(例如,空格为%20)。
出于本规范的目的,一个方案 (opens new window)是由 2-32 个字符组成的任何序列,以 ASCII 字母开头,后跟 ASCII 字母,数字或符号的任意组合或者加号(+),句点(.)或 连字符(-)。
这里是一些有效的自动链接:

示例 602

Markdown HTML 效果
<http://foo.bar.baz>

<p><a href="http://foo.bar.baz">http://foo.bar.baz</a></p>

示例 603

Markdown HTML 效果
<http://foo.bar.baz/test?q=hello&id=22&boolean>

<p><a href="http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean">http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean</a></p>

示例 604

Markdown HTML 效果
<irc://foo.bar:2233/baz>

<p><a href="irc://foo.bar:2233/baz">irc://foo.bar:2233/baz</a></p>

大写字母也可以:

示例 605

Markdown HTML 效果
<MAILTO:FOO@BAR.BAZ>

<p><a href="MAILTO:FOO@BAR.BAZ">MAILTO:FOO@BAR.BAZ</a></p>

请注意,许多用于本规范的绝对 URI (opens new window) 的字符串都不是有效的 URI,因为它们的方案未注册或由于其语法存在问题:

示例 606

Markdown HTML 效果
<a+b+c:d>

<p><a href="a+b+c:d">a+b+c:d</a></p>

示例 607

Markdown HTML 效果
<made-up-scheme://foo,bar>

<p><a href="made-up-scheme://foo,bar">made-up-scheme://foo,bar</a></p>

示例 608

Markdown HTML 效果
<http://../>

<p><a href="http://../">http://../</a></p>

示例 609

Markdown HTML 效果
<localhost:5001/foo>

<p><a href="localhost:5001/foo">localhost:5001/foo</a></p>

自动链接中不允许使用空格:

示例 610

Markdown HTML 效果
<http://foo.bar/baz bim>

<p>&lt;http://foo.bar/baz bim&gt;</p>

反斜杠转义在自动链接中不起作用:

示例 611

Markdown HTML 效果
<http://example.com/\[\>

<p><a href="http://example.com/%5C%5B%5C">http://example.com/\[\</a></p>

电子邮件自动链接 (opens new window)包含<,后跟电子邮件地址和 >。 链接的标签是电子邮件地址,URL 是mailto:后跟电子邮件地址。
出于这些目的,电子邮件地址 (opens new window)是与HTML5 规范中的非规范正则表达式 (opens new window)匹配的任何内容:

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?
(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

电子邮件链接示例:

示例 612

Markdown HTML 效果
<foo@bar.example.com>

<p><a href="mailto:foo@bar.example.com">foo@bar.example.com</a></p>

示例 613

Markdown HTML 效果
<foo+special@Bar.baz-bar0.com>

<p><a href="mailto:foo+special@Bar.baz-bar0.com">foo+special@Bar.baz-bar0.com</a></p>

反斜杠转义在电子邮件自动链接中不起作用:

示例 614

Markdown HTML 效果
<foo\+@bar.example.com>

<p>&lt;foo+@bar.example.com&gt;</p>

这些不是自动链接:

示例 615

Markdown HTML 效果
<>

<p>&lt;&gt;</p>

示例 616

Markdown HTML 效果
< http://foo.bar >

<p>&lt; http://foo.bar &gt;</p>

示例 617

Markdown HTML 效果
<m:abc>

<p>&lt;m:abc&gt;</p>

示例 618

Markdown HTML 效果
<foo.bar.baz>

<p>&lt;foo.bar.baz&gt;</p>

示例 619

Markdown HTML 效果
http://example.com

<p>http://example.com</p>

示例 620

Markdown HTML 效果
foo@bar.example.com

<p>foo@bar.example.com</p>