AsciiDoc提供了多种创建链接(又称超链接)到其他可寻址资源的方法。这一部分的页面记录了如何在AsciiDoc中添加和自定义链接。
网址和链接
链接的[.term]目标*是一个https://en.wikipedia.org/wiki/URL[统一资源定位符^] (URL),也就是一个网址。读者点击以导航到该目标的文本被称为[.term]*链接文本。
Note
|
您可能有时会看到使用URI来代替URL的情况。虽然在某些情况下URI在技术上更加正确,但是URL是公认的术语。 |
URL是唯一资源的网络地址。URL可以是绝对的,也可以是相对的。一个绝对URL包含协议、权威部分(即域名)、可选的文件扩展名的路径,以及以查询字符串和片段形式的元数据(例如,https://example.org/asciidoc/links.html?source=home
)。你可能会认识到绝对URL,就是你在网页浏览器的位置栏中输入的,比如这个页面的URL。相对URL是绝对URL的一部分,从根路径或子路径之后开始(例如,guides/getting-started.html
)。
由于绝对URL具有明确且可识别的语法,AsciiDoc处理器会检测URL(除非被转义)并在应用宏替换步骤的任何地方自动将它们转换为链接。这也适用于普通电子邮件地址。您可以在autolinks.html中了解更多关于此行为的信息。要链接到相对URL,您必须明确将其指定为链接宏的目标。
链接相关的宏
编码保留字符
如果URL包含保留字符,例如双引号("
)、空格或不受限制的AsciiDoc格式化标记,您需要使用URI编码对这些字符进行编码。例如,双引号编码为`%22`。下划线编码为`%5F`。如果您不编码这些字符,URL可能会被破坏或导致处理器失败。
假设我们正在创建一个URL,其中包含一个名为`q`的查询字符串参数,该参数包含保留字符:
https://example.org?q=label:"Requires docs"
要对URL进行编码,请在浏览器中打开开发者工具,并将URL传递给`encodeURI`函数进行编码:
encodeURI('http://example.org?q=label:"Requires docs"')
我们在AsciiDoc文档中会使用的编码后的URL是:
https://example.org?q=label:%22Requires%20docs%22
根据Web应用程序的功能,空格字符可以编码为 +
而不是 %20
。
隐藏URL协议
如果链接文本是一个裸露的URL(又称URI),无论该链接是自动创建的还是使用链接相关的宏创建的,你可以配置AsciiDoc处理器来隐藏该方案(例如,https://)。隐藏方案可以使URL更易读——或许甚至更易于被不太熟悉技术术语的人识别。
要配置AsciiDoc处理器以在不显示方案部分的情况下显示链接的URL,请在AsciiDoc文档的头部设置`hide-uri-scheme`属性。
= 文件标题
隐藏URI方案
https://asciidoctor.org
-
请注意在属性名中使用`uri`而不是`url`。
当设置了`hide-uri-scheme`属性时,上述URL将如下显示给读者:
请注意URL中缺少_https://_。链接目标中仍然会存在该前缀。