如果你对AsciiDoc语法比较熟悉,你可能会注意到一个URL几乎看起来像一个内联宏。所有缺失的只是一对尾随的方括号。实际上,如果你添加了它们,那么一个URL就会被当作一个内联宏。我们称之为URL宏。

这个页面介绍了URL宏,你何时想要使用它,以及它与链接宏的区别。

从URL到宏

将URL转换为宏,需要在URL的末尾添加一对方括号。例如:

https://asciidoctor.org[]

既然没有指定文本,这个宏的行为就和自动链接一样。在这种情况下,链接会自动被赋予“bare”角色。

当URL后面跟着一对方括号时,URL方案同时也用作宏名称。AsciiDoc识别所有用于自动链接的URL方案作为宏名(例如,https)。这就是为什么我们说“URL宏”,而不仅仅是“URL宏”。这是一系列宏。除了mailto宏之外,所有的URL宏的行为都是相同的,并且与link宏的表现也一样。

为什么您可能会从URL升级到URL宏?一个原因是强制在通常不会被识别的情况下解析URL,例如如果它被双引号包围:

在浏览器的地址栏中输入“https://asciidoctor.org[]”。

更常见的原因,然而,是为了指定自定义的链接文本。

你可以配置链接来显示自定义文本,而不是显示URL。当读者点击该文本时,他们会被引导到链接的目标URL。

要自定义链接的文本,请将该文本插入到URL宏的方括号之间。

Unresolved directive in url-macro.adoc - include::example$url.adoc[tag=irc]

因为文本会进行常规替换,所以你可以对它应用格式设置。

Unresolved directive in url-macro.adoc - include::example$url.adoc[tag=text]

链接属性

您可以使用属性列表进一步自定义链接,例如使其在新窗口中打开,并为其应用一个角色。

Unresolved directive in url-macro.adoc - include::example$url.adoc[tag=css]

要了解URL宏中方括号内的文本是如何解析的,请参阅属性解析