# 自动链接 (拓展)
GFM 启用自动链接扩展,它的自动链接将在更多条件下被识别。
在没有<和>的情况下,自动链接 (opens new window)也能被构造出来,尽管在少许语境中才能被识别出来。所有这些已识别的自动链接只能出现在行的开头,空格之后,或任何分隔字符*,_,~和(之后。
当文本www.后跟有效域名 (opens new window)时,将识别扩展的 www 自动链接 (opens new window)。有效域名 (opens new window)由字母数字字符,下划线(_),连字符(-)和句号(.)组成。 必须至少有一个句号,并且域名的最后两段中不能存在下划线。
 http会被自动插入:
 
示例 621
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
在有效域名 (opens new window)之后,可能会出现零个或多个非空格非<字符:
 
示例 622
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
然后,我们应用扩展自动链接路径验证 (opens new window),如下所示:
尾随标点符号(特别是?,!,.,,,:,*,_,和~)不会被视为自动链接的一部分,尽管它们可能包含在链接的内部:
 
示例 623
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
当自动链接以)结束时,我们扫描整个自动链接以获得括号总数。如果关闭括号的数量多于打开括号,我们不会考虑自动链接的最后一个字符部分,以便在括号内包含自动链接:
 
示例 624
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
此检查仅在链接以右括号)结束时完成,因此如果唯一的括号位于自动链接的内部,则不会应用特殊规则:
 
示例 625
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
如果自动链接以分号(;)结尾,我们检查它是否看起来像实体引用;如果前面的文本后跟一个或多个字母数字字符。它将从自动链接中排除:
 
示例 626
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
<可以中断自动链接。
 
示例 627
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
当有方案http://,https://,或ftp://后跟一个有效域名 (opens new window)和零个或多个非空字符非<字符,根据扩展自动链接路径验证 (opens new window),这就是一个拓展的自动链接 (opens new window):
 
示例 628
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
在任何文本节点中识别电子邮件地址时,将识别扩展的电子邮件自动链接 (opens new window)。电子邮件地址根据以下规则识别:
- 一个或多个字符,字母数字,或.,-,_,或+。
- 一个 @ 符号。
- 一个或多个字母数字,或 .,-,_。 这里至少有一个字符必须是句号(.)。 最后一个字符不能是-或_。 如果最后一个字符是句号(.),它将从自动链接中排除。
scheme mailto:将自动添加到生成的链接:
 
示例 629
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
+可以出现在@之前, 不能在其后。
 
示例 630
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  | 
.,-,_可以同时出现在@的两边,但只有 . 能出现在电子邮件地址的末尾,在这种情况下,它不会被视为地址的一部分:
 
示例 631
| Markdown | HTML | 效果 | 
|---|---|---|
|  |  |