Antora如何构建URL
Antora使用资源ID、站点URL以及站点playbook中的URL设置的信息来构建可发布资源(页面、附件和图片)的URL。
站点URL
用户定义。 可选。
站点URL标识您的站点发布的位置。站点URL通过在playbook中分配一个允许的值给playbook中的site.url键、--url命令行选项或URL环境变量来定义。有两种允许的站点URL类型:绝对和根相对。
Antora旨在生成可离线查看和从本地文件系统访问的站点。因此,Antora不需要站点URL来构建站点。但是,当Antora未检测到允许的站点URL值时,它会自动停用某些发布功能。请参阅依赖站点URL的功能以获取受影响功能的完整列表。
绝对站点URL
绝对站点URL以https://开头,后跟站点域或子域。
如果您将站点发布到子文件夹,则站点域后面跟着子路径。
子路径,也称为路径段或路径名,表示Antora管理的站点位于域的根目录的位置。也就是说,如果您的站点发布到域的子文件夹,则绝对站点URL应包含此路径。有关使用带有子路径的绝对站点URL的更多信息,请参阅配置绝对站点URL和站点URL何时应包含子路径?。
站点路径名
计算。
站点路径名表示Antora在发布功能需要相对于站点根目录的URL时使用的内部属性site.path
。Antora根据站点URL计算站点路径名。站点路径名的值通常为空,除非绝对站点URL包含子路径或站点URL是根相对站点URL。如果site.url
是包含子路径的绝对站点URL,Antora会提取子路径并将其用作站点路径名。例如,在图2中使用绝对站点URL,Antora提取子路径/docs
并将其分配给site.path
。当分配给site.url
的值是根相对站点URL时,Antora提取整个值并将其用作站点路径名。当功能(例如重定向)要求计算的URL相对于站点域或站点根时,Antora将资源URL附加到站点路径名以创建域相对URL。
正确的URL,正确的位置
Antora生成并管理站点中的所有URL。Antora构建资源URL作为绝对路径相对于站点路径名的可发布资源。然后,根据URL在当前页面、站点URL(站点路径名/资源URL)或绝对URL(绝对站点URL/资源URL)的上下文和功能,将资源URL转换为相对于当前页面的URL。
资源URL
计算。
Antora为站点中的每个可发布资源计算资源URL。可发布资源是属于页面、图片和附件系列的源文件。资源URL被计算为相对于站点路径名的绝对路径,以便在整个应用程序中进行标准化。
资源URL以斜杠(/
)开头,并包含Antora从资源的ID和playbook中的URL设置派生的段。这些段通常代表组件名称、版本、模块和资源文件名。
某些playbook键可以修改、添加或删除资源URL的部分。如果资源不是页面或属于ROOT组件、未版本化的组件版本或ROOT模块,则会添加或删除一些资源URL段。有关每个段以及Antora从何处提取其值的信息,请参阅资源URL段。
Antora将资源的计算资源URL分配给内部属性pub.url
,其中pub
是与发布相关的属性组。
相对化URL
计算。
Antora将对资源的引用转换为相对URL。Antora将此转换称为相对化。
相对化转换发生的位置取决于资源,可以是页面、图片、附件或UI资源。对于AsciiDoc中的交叉引用和图片,Antora在Asciidoctor的扩展HTML转换器中内部调用相对化。对于导航条目、面包屑、分页链接和页面版本选择器,UI使用相对化助手将资源URL转换为相对于当前页面的URL。对于UI资源,UI使用uiRootPath
变量创建到资源的相对URL。
Antora创建相对URL以链接到资源有两个原因。首先,它尽可能保持URL的长度短,以限制生成的HTML的大小。更重要的是,它确保URL在不同环境之间是可移植的。这是Antora站点在直接从文件系统查看时正常工作的关键原因。相对引用不依赖于Web服务器来解析URL。相反,它们从当前页面开始,沿着文件系统向上下移动到目标资源,这在任何地方都有效。出于同样的原因,它简化了发布,因为站点不受特定域或站点根目录的限制。
资源URL段
以下各节描述了资源URL的每个段,以及Antora从何处提取每个段的值。已发布页面的资源URL段通常按照图 7所示的顺序组织。
图像和附件的资源URL包含一个额外的family段,分别为_images
或_attachments
。family段跟随模块段,如图 8所示。
组件段
URL的组件段是已发布资源所属的组件的名称。当资源属于特别命名的ROOT
组件时,组件段将从URL中删除。组件名称由antora.yml文件中的name key指定。
Antora计算并分配给资源的pub.url
属性的资源URL始终以此段开头。
版本段
URL的版本段是已发布资源所属的组件版本的实际版本或符号版本。实际版本是分配给组件版本的antora.yml文件中的version key或在playbook中指定的内容源的version
键的值。所有组件版本都有一个实际版本,尽管该版本可能被定义为无版本。当组件版本为无版本时,版本段将从其资源的URL中删除。
符号版本是一个可选的配置设置,仅适用于资源属于组件的最新版本或最新预发布版本的版本段。符号版本将替换URL中的实际版本。使用playbook中的latest_version_segment
键或latest_prerelease_version_segment
键定义符号版本。符号版本不适用于无版本的组件版本;其资源的已发布URL始终删除版本段。
模块段
Antora从存储资源源文件的模块目录名称派生模块段。当资源属于特别命名的ROOT
模块时,模块段将从URL中删除。有关示例和更多信息,请参阅页面URL中的模块段。
Family段
family段仅适用于图像和附件的资源URL。图像和附件的URL包括一个以下划线(_
)开头的family段。对于图像,此段为_images
。对于附件,此段为_attachments
。页面的URL不包含family段。
相对路径段
相对路径段是从资源源文件的family-relative路径派生的。对于页面,.adoc扩展名将被删除,并替换为.html或指定的HTML扩展样式。其他资源的URL保留原始文件扩展名,如.svg或.pdf。
HTML扩展
.html扩展名和html_extension_style
键仅适用于页面的URL。默认情况下,Antora将.html扩展名附加到页面URL。playbook中的html_extension_style键或--html-url-extension-style选项可以修改此行为。扩展名可以被删除(drop
)或删除并替换为斜杠(indexify
)。
非页面资源的URL使用其源文件的文件扩展名,而不管html_extension_style
的值。