Antora怎么运行

Antora 的站点生成器处理创建文档站点的所有方面,从获取和聚合到转换和安排内容,再到发布生成的站点的文件。本页详细描述了该过程。

默认的管道是固执己见的,以便让您尽快开始。但是要知道,Antora 的特点是模块化的、开放的架构。这意味着该体系结构可以通过允许在需要时将自定义 Antora 组件(如验证器)插入到管道中的策略点来适应专门的用例。本页重点介绍了核心的、内置的 Antora 组件和功能。

默认生成器管道中的步骤

本节中列出的步骤描述了站点生成器执行的操作。某些操作是异步执行的,因此下面的一些步骤可能以不同的顺序发生或同时发生。例如,在聚合内容时获取和加载 UI ,以优化网络的使用。

Build playbook

当您准备好生成一个站点时,您可以向 Antora 传递一个 playbook 文件并让它运行。

剧本文件是一个简单的配置文件 ,可以用 YAML、JSON 或 TOML 编写。它包含信息和设置,例如使用什么内容、如何处理内容、如何生成站点以及在何处发布输出。

Antora 读取剧本文件并从中构建剧本,然后使用它来驱动管道。

Load content repositories

使用剧本中列出的 内容源,Antora 加载指定的 git 存储库或本地内容文件夹,准备扫描它们以查找内容文件。

对于每个远程 URL , Antora 使用内置的 git 客户端将远程 git 存储库克隆到本地缓存中。如果存储库已经被克隆,那么如果配置需要这样做,Antora 将获取更新。

最后,Antora 确定从指定的存储库中使用哪些引用(分支、标记和开始路径)。

Find the content source roots

内容源根 开始,当 Antora 找到一个名为 Antora.yml 的组件版本描述符文件时,它将一组文件标识为组件版本的一部分。这些源文件可以存储在单个存储库中,也可以存储在存储库的根目录或子路径中,或者分布在多个存储库中。

Transform input files into virtual file objects

Antora 从每个 内容源根子树 中收集所有文件文本、图像、示例和其他支持材料。然后,它为每个输入文件创建一个虚拟文件。

Assign files to component version buckets

Antora 读取组件版本描述符( Antora.yml )文件。

组件版本描述符 将其下的文件与指定的组件名称和版本(即组件版本)关联起来。这允许文件与它们所在的存储库解耦,并使 Antora 的 URL 不可知 交叉引用 成为可能。

Antora 将描述符信息和其它源元数据分配给虚拟文件。然后,它根据分配的组件版本数据将每个文件分类到一个虚拟集合中。

组件版本 通常表示项目、库、服务或培训课程的文档的离散且唯一的版本。

Compute additional metadata

使用剧本中的 站点属性 和在前一步中分配给文件的信息,Antora 向每个文件添加模块、家族、家族相关路径和其他元数据值。它还计算每个可发布文件的输出路径(磁盘)和发布路径(URL)信息。

Organize files into a content catalog

Antora 进一步将聚合的文件分类到可以查询和传输的内容目录中。

Convert AsciiDoc files to embeddable HTML

使用 Asciidoctor.js 将内容目录 页面族 中的 AsciiDoc 文件转换为可嵌入的 HTML 。

Convert navigation files

Antora 从内容目录中检索 导航文件 ,将其内容转换为按照指定层次结构组织的导航项(导航树在导航菜单中分组),并返回导航模型。

Locate and fetch UI bundle

Antora 使用 playbook 中列出的 URL 找到 UI bundle 并获取它。UI 包可以缓存在本地或远程。

Transform UI files into virtual file objects

Antora 提取包中的 UI 文件,并为包含文件内容和路径信息的每个文件创建一个虚拟文件对象。

Classify UI files

Antora 使用 UI 描述符文件(UI.yml)识别静态 UI 文件,并将文件类型设置为 static。它根据所有其他文件的位置(asset、layout、helper、partial)为它们设置类型。

Compute UI file output paths

对于每个可发布的 UI 文件(静态或资产类型),Antora 计算其输出路径。

Organize UI files into UI catalog

虚拟 UI 文件被分类到一个可传递的集合中。

Wrap converted AsciiDoc content in page templates

Antora 确定每个页面请求哪个页面模板。它使用页面的可嵌入 HTML 、站点元数据、页面、版本和产品选择器的上下文数据(组件、版本)以及菜单和面包屑的导航模型信息填充已标识的 UI 模板。

依靠页面模板来生成页面,站点所有者可以完全控制页面的构造,从而完全控制 UI 。

Produce sitemap

Antora 生成一个站点地图,可以用作内部报告或与站点一起发布。此站点地图按组件名称(使用站点地图索引)进行分区。站点地图索引链接到每个组件名称的站点地图,其中可以找到各个页面的url。

Publish site

Antora 将生成的页面写到默认位置或 用户指定的位置 。站点可以使用 内置的和自定义的目标提供程序 通过多种协议以多种格式发布到多个位置。

可以用自定义的网站生成器替换默认的网站生成器。首先需要创建一个库或脚本,用签名 generateSite(args, env) 导出函数。在该脚本中,您可以自由地从 Antora 导入核心组件,以重新组装自己的管道。然后,通过将库或脚本的名称传递给 Antora CLI--generator 选项来激活管道。