Here is a simple inline link:
下面是一个简单的内联链接:
标题、链接文本甚至目的地都可能被省略:
如果将目标括在尖括号中,则目标只能包含空格:
[link](/my uri)
目标不能包含行尾,即使用尖括号括起来也是如此:
[link](foo
bar)
[link]()
如果用尖括号括起来,则目标可以包含 ) :
必须取消转义包含链接的尖括号:
[link](<foo>)
这些不是链接,因为左尖括号不匹配:
[a](<b)c
[a](<b)c>
[a](c)
链接目标内的圆括号可以转义:
允许使用任意数量的括号而不转义,只要它们是平衡的:
但是,如果圆括号不对称,则需要转义或使用 <...> 形式:
[link](foo(and(bar))
圆括号和其他符号也可以转义,就像在Markdown中常见的那样:
链接可以包含片段标识符和查询:
请注意,不可转义字符前的反斜杠只是一个反斜杠:
URL转义应该单独留在目标中,因为所有URL转义字符也是有效的URL字符。与往常一样,目标中的实体和数字字符引用将被解析为相应的Unicode代码点。当编写为HTML时,这些URL可能是可选的URL转义,但此规范不强制执行任何特定的策略来将URL呈现为HTML或其他格式。呈现器可能会对如何转义或标准化输出中的URL做出不同的决定。
请注意,因为标题通常可以被解析为目的地,所以如果您尝试省略目的地而保留标题,则会得到意想不到的结果:
标题可以用单引号、双引号或括号括起来:
可以在标题中使用反斜杠转义以及实体和数字字符引用:
标题必须与链接使用空格、制表符和最多一行结尾分隔。其他Unicode空格(如不间断空格)不起作用。
不允许嵌套的平衡引号没有转义:
[link](/url "title "and" title")
但通过使用不同的报价类型可以很容易地解决此问题:
目的地和标题周围允许使用空格、制表符和最多一个行尾:
但链接文本和以下括号之间不允许:
[link] (/uri)
链接文本可以包含平衡方括号,但不能包含不平衡方括号,除非它们被转义:
[link] bar](/uri)
[link bar
链接文本可能包含内联内容:
但是,链接不能包含任何嵌套级别的其他链接。
[foo bar](/uri)
[foo [bar baz](/uri)](/uri)
以下案例说明了链接文本分组优先于强调分组:
*foo*
请注意,不属于链接的方括号不优先:
foo [bar baz]
这些案例说明了HTML标记、代码跨度和自动链接优先于链接分组:
[foo
[foo](/uri)
[foohttps://example.com/?search=](uri)
有三种引用链接:完整、折叠和快捷方式。
链接的URI和标题由匹配的链接引用定义提供。
[foo][bar]
[bar]: /url "title"
链接文本的规则与内联链接的规则相同。因此:
链接文本可以包含平衡方括号,但不能包含不平衡方括号,除非它们被转义:
[link [foo [bar]]][ref]
[ref]: /uri
[link [bar][ref]
[ref]: /uri
链接文本可能包含内联内容:
[link foo bar #
][ref]
[ref]: /uri
[][ref]
[ref]: /uri
但是,链接不能包含任何嵌套级别的其他链接。
[foo bar][ref]
[ref]: /uri
[foo bar [baz][ref]][ref]
[ref]: /uri
以下情况说明链接文本分组优先于强调分组:
[foo][ref]
[ref]: /uri
[foo bar][ref]
[ref]: /uri
这些案例说明了HTML标记、代码跨度和自动链接优先于链接分组:
[foo
[ref]: /uri
[foo][ref]
[ref]: /uri
[foohttps://example.com/?search=][ref]
[ref]: /uri
匹配不区分大小写:
[foo][BaR]
[bar]: /url "title"
使用Unicode Case Fold:
[ẞ]
[SS]: /url
为了确定匹配,连续的内部空格、制表符和行尾被视为一个空格:
链接文本和链接标签之间不允许有空格、制表符或行尾:
foo [bar]
[bar]: /url "title"
foo
[bar]
[bar]: /url "title"
foo
[bar]
foo: /url1
[bar]: /url2
如果有多个匹配的链接引用定义,则使用第一个定义:
请注意,匹配是在规范化字符串上执行的,而不是解析的内联内容。因此,尽管标签定义了相同的内联内容,但以下内容并不匹配:
[bar][foo!]
[foo!]: /url
链接标签不能包含方括号,除非它们是反斜杠转义的:
[foo][ref[]
[ref[]: /uri
[foo][ref[bar]]
[ref[bar]]: /uri
[foo][ref[]
[ref[]: /uri
[]
[]: /uri
[
]
[
]: /uri
折叠的引用链接包含一个与文档中其他位置的链接引用定义匹配的链接标签,后跟字符串 [] 。链接标签的内容被解析为内联,用作链接的文本。链接的URI和标题由匹配的引用链接定义提供。因此, foo 等同于 foo 。
[foo bar][]
[foo bar]: /url "title"
链接标签不区分大小写:
与完整引用链接一样,两组括号之间不允许使用空格、制表符或行尾:
快捷方式引用链接由与文档中其他位置的链接引用定义相匹配的链接标签组成,并且后面没有或链接标签。链接标签的内容被解析为内联,用作链接的文本。链接的URI和标题由匹配的链接引用定义提供。因此,相当于。
[foo bar]
[foo bar]: /url "title"
[[foo bar]]
[foo bar]: /url "title"
链接标签不区分大小写:
应保留链接文本后的空格:
如果您只想要带括号的文本,可以使用反斜杠转义左方括号以避免链接:
[foo]
foo: /url "title"
*foo*
完整引用和折叠引用优先于快捷方式引用:
[foo][bar]
foo: /url1
[bar]: /url2
内联链接也优先:
[foo][bar][baz]
[baz]: /url
[foo][bar][baz]
[baz]: /url1
[bar]: /url2
这里 foo 没有解析为快捷方式引用,因为它后面跟着一个链接标签(即使 [bar] 没有定义):
[foo][bar][baz]
[baz]: /url1
foo: /url2