最新版本段策略
latest_version_segment_strategy
键控制包含实际版本的可发布URL与包含符号版本的URL之间的替换和重定向方向。正如键的名称所示,所选策略仅适用于组件版本的最新版本或最新预发布版本。
latest_version_segment_strategy键
latest_version_segment_strategy
键是可选的。它在playbook中的urls键下配置。还必须设置latest_version_segment键或latest_prerelease_version_segment键,否则Antora会停用指定的策略,因为在URL中没有符号版本可以替换实际版本。指定的策略和符号版本仅适用于站点中每个组件的最新版本或最新预发布版本。所有其他组件版本的URL使用URL的版本段中的实际版本。
urls: (1)
latest_version_segment_strategy: redirect:to (2)
latest_prerelease_version_segment: next (3)
urls
,后跟冒号(
:
),然后按
Enter转到新行。
latest_prerelease_version_segment
,后跟冒号和空格(
:
),然后键入您的符号版本值。此示例使用最新预发布版本段的符号版本
next
。
1 | |
2 | latest_version_segment_strategy 键必须嵌套在urls 键下。键入latest_version_segment_strategy ,后跟冒号和空格(: ),然后键入您希望Antora使用的内置策略值,然后按Enter。此示例使用值redirect:to 。 |
3 |
latest_version_segment_strategy
键接受以下内置值:
-
redirect:from
-
设置从使用符号版本的URL重定向到使用实际版本的URL。实际版本由最新组件版本的页面和资产URL中的
latest_version_segment
键或latest_prerelease_version_segment
键指定的符号版本替换。当重定向设施为static
时,此策略当前被忽略。 -
redirect:to
-
设置从使用实际版本的URL重定向到使用符号版本的URL。实际版本由最新组件版本的页面和资产URL中的
latest_version_segment
键或latest_prerelease_version_segment
键指定的符号版本替换。当重定向设施为static
时,此策略会透明地更改为replace
。 -
replace
-
默认。实际版本由最新组件版本的页面和资产URL中的
latest_version_segment
键或latest_prerelease_version_segment
键指定的符号版本替换。当未设置latest_version_segment_strategy
键时,但在playbook中为latest_version_segment
键或latest_prerelease_version_segment
键分配了值时,replace
是默认值。
当策略为redirect:to
或redirect:from
时,Antora会创建临时重定向(302)。规则和重定向配置文件的格式由您使用redirect_facility
键指定的重定向设施确定。请注意,当playbook或CLI中未定义redirect_facility
键时,Antora会在运行时将static值分配给该键。由于创建临时重定向规则只有Web服务器才能做到,因此在使用静态重定向设施时,将忽略redirect:from
策略,而redirect:to
策略实际上变为replace
策略。
如果latest_version_segment_strategy
键的值为redirect:from
,则latest_version_segment
和latest_prerelease_version_segment
的值不能为空。这一限制是因为从父文件夹重定向可能会阻止访问其他版本。
自动启用替换策略
当replace
是您首选的策略时,只要在playbook中为latest_version_segment
键或latest_prerelease_version_segment
键分配一个值,您就不需要设置latest_version_segment_strategy
键。
# ...
urls:
latest_version_segment: stable
content:
# ...
当Antora读取示例2中的playbook并检测到latest_version_segment
键已设置并分配了一个值,但latest_version_segment_strategy
键未设置时,Antora会在运行时自动设置latest_version_segment_strategy
并分配replace
。同样,如果只设置并分配了latest_prerelease_version_segment键的值,Antora会在运行时自动设置latest_version_segment_strategy
并分配replace
。
重定向到符号版本的URL
本节探讨使用redirect:to
策略重定向URL,将使用最新组件版本的实际版本的URL重定向到使用符号版本的URL。本节中的示例使用组件版本描述文件中定义的组件版本,示例分别在示例3和示例4中展示。 示例3定义了一个组件版本,组件名称为colorado
,版本为5.2
。
name: colorado
version: '5.2' (1)
1 | antora.yml中的version 键定义了组件的实际版本为5.2 。 |
示例4定义了一个组件版本,名称为colorado
,版本为5.6
。
name: colorado
version: '5.6' (1)
1 | antora.yml中的version 键定义了组件的实际版本为5.6 。 |
这两个组件版本都有一个名为tour.adoc的页面,属于模块get-started。
现在,让我们为最新组件版本分配一个最新版本段策略和最新版本URL段。这些信息通过您站点的playbook文件提供给Antora。 latest_version_segment_strategy
和latest_version_segment
键在playbook文件中配置(而不是组件版本描述文件),位于urls
键下。 示例5显示了在playbook文件中定义这些键。
site:
title: The Ranges
url: https://docs.example.com
urls:
latest_version_segment_strategy: redirect:to (1)
latest_version_segment: current (2)
redirect_facility: nginx (3)
content:
# ...
1 | Antora在生成最新组件版本URL的重定向规则时将使用redirect:to 策略。 |
2 | Antora将在最新组件版本的URL中用符号版本current 替换实际版本。 |
3 | Antora将生成一个nginx重定向文件,并将其放置在生成站点的根目录下的.etc/nginx/rewrite.conf。 |
假设示例3和示例4是站点中唯一的组件版本,Antora将识别colorado 5.6作为colorado组件的最新版本。Antora根据其语义和命名版本排序规则确定最新组件版本和版本顺序。
如示例6所示,版本段使用实际版本,因为colorado 5.2不是colorado组件的最新版本。
https://docs.example.com/colorado/5.2/get-started/tour.html
然而,在示例7中,版本段使用符号版本current,因为colorado 5.6是colorado组件的最新版本。
https://docs.example.com/colorado/current/get-started/tour.html
除了在最新组件版本的URL中用符号版本替换实际版本外,Antora还会为使用实际版本的URL和使用符号版本的URL之间设置临时重定向。在示例5中的playbook将redirect_facility
键分配给了nginx值,因此Antora将重定向规则写入一个名为rewrite.conf的nginx重写配置文件,并将其放置在站点的.etc/nginx/rewrite.conf中。对于最新组件版本的实际版本的URL的任何请求都会重定向到符号版本的URL。例如,如果请求https://docs.example.com/colorado/5.6/get-started/tour.html,该URL将重定向到https://docs.example.com/colorado/current/get-started/tour.html。
当站点添加新组件版本时会发生什么?
name: colorado
version: '6.0'
站点使用与示例5中相同的playbook。在生成过程中,Antora确定colorado组件的最高版本为版本6.0,因此colorado 6.0成为colorado组件的最新版本。使用示例3(colorado 5.2)、示例4(colorado 5.6)、示例8(colorado 6.0)中定义的组件版本和示例5中的playbook,Antora为每个组件版本中的tour.adoc页面构建以下URL。
示例9显示了组件版本colorado 5.2中tour.adoc页面的URL保持不变。
https://docs.example.com/colorado/5.2/get-started/tour.html
与前一节中colorado 5.6的URL不同,示例10显示了tour.adoc的版本段现在包含实际版本,因为colorado 5.6不再是colorado组件的最新版本。
https://docs.example.com/colorado/5.6/get-started/tour.html
Antora也不会为使用5.6的URL设置临时重定向到current的URL。对于请求https://docs.example.com/colorado/5.6/get-started/tour.html,将按原样提供服务。
在示例11中,版本段使用符号版本current,因为colorado 6.0是colorado组件的最新版本。
https://docs.example.com/colorado/current/get-started/tour.html
Antora为使用最新组件版本的实际版本6.0
的URL设置新的临时重定向,并将其重定向到符号版本的URL。例如,如果请求https://docs.example.com/colorado/6.0/get-started/tour.html,该URL将重定向到https://docs.example.com/colorado/current/get-started/tour.html。