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