运行Antora生成您的站点
假设:
-
您拥有自己的playbook,或者您正在使用演示playbook。
-
您的playbook已配置为访问至少一个您自己的包含内容源文件的存储库或Antora的演示内容存储库。
-
您的playbook已配置为使用自定义UI捆绑包或Antora的默认UI捆绑包。
在本页中,您将学习:
-
如何运行Antora并生成站点。
Antora演示playbook和内容存储库
您无需设置playbook文件、组件版本或UI来评估Antora。相反,您可以使用Antora演示playbook和内容存储库。
该演示包括一个包含playbook文件和内容存储库(component-a和component-b)的playbook存储库,该playbook引用这些内容存储库。它还使用由默认UI项目生成的UI捆绑包。
一旦您已经安装了Antora,您可以使用演示材料运行Antora来探索其功能。本页上的说明和示例将指导您完成整个过程。
选择一个playbook
为了生成文档站点,Antora需要一个playbook。但首先,您需要创建或选择一个目录,用于存储playbook以及生成的站点文件(假设您使用默认输出配置)。
在本页的示例中,我们将使用演示playbook和内容存储库。
-
打开终端并创建一个名为demo-site的新目录。
~ $ mkdir demo-site
-
切换(
cd
)到您刚刚创建的目录。~ $ cd demo-site
-
使用您喜欢的文本编辑器或IDE,创建一个名为antora-playbook.yml的新playbook文件,并填充以下示例内容。或者,您可以从演示项目存储库下载playbook文件。
antora-playbook.ymlsite: title: Antora演示站点 url: https://my-antora-demo-site.org (1) start_page: component-b::index.adoc (2) content: sources: - url: https://gitlab.com/antora/demo/demo-component-a.git branches: HEAD - url: https://gitlab.com/antora/demo/demo-component-b.git branches: [v2.0, v1.0] start_path: docs ui: bundle: url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/HEAD/raw/build/ui-bundle.zip?job=bundle-stable snapshot: true
1 只有在设置了站点 url
键时才会生成404页面和站点地图文件。只有当站点url
键的值为绝对URL时才会生成站点地图文件。2 站点 start_page
键接受与xrefs中使用的资源ID语法相同的语法。 -
将playbook保存为antora-playbook.yml,保存在您在步骤1中创建的demo-site目录中。
运行Antora
-
要使用默认的Antora站点生成器生成站点,请将
antora
命令指向您的playbook文件。在终端中,键入:demo-site $ antora antora-playbook.yml
如果Antora已在本地安装,您需要在Antora命令前加上
npx
:demo-site $ npx antora antora-playbook.yml
Antora将克隆内容存储库。每个存储库的克隆进度将显示在终端中。
存储库克隆进度[clone] https://gitlab.com/antora/demo/demo-component-a.git [################] [clone] https://gitlab.com/antora/demo/demo-component-b.git [################]
克隆完成后,Antora将把AsciiDoc页面转换为可嵌入的HTML,将HTML包装在UI页面模板中,然后将页面组装成一个站点,默认情况下保存在build/site文件夹下。
-
当终端中再次出现命令提示符(
$
)时,Antora生成完成。如果终端是交互式的(TTY),Antora还会打印一条消息,说明站点生成已完成。该消息将包含您可以在本地查看站点的URL。(您可以通过将IS_TTY
环境变量设置为true
或false
来覆盖Antora的TTY检测。)如果在生成过程中出现问题,您将在终端中看到错误消息。
error: 概括了出现问题的消息
如果此消息未提供足够的信息来解决问题,您可以要求Antora提供更多上下文。要告诉Antora显示导致错误的调用(即堆栈跟踪),请再次运行
antora
命令,这次使用--stacktrace
选项:demo-site $ antora --stacktrace antora-playbook.yml
在寻求帮助时分享此堆栈跟踪。
-
切换到站点文件夹(
cd
)并列出(ls
)其中的内容。demo-site $ cd build/site/
在build/site文件夹内运行:
site $ ls -1
您应该看到以下文件和目录列表:
_ 404.html component-a component-b index.html sitemap-component-a.xml sitemap-component-b.xml sitemap.xml
如果在您的playbook中未定义 site.url
属性,则404页面和站点地图文件将缺失。主站点地图文件实际上是一个站点地图索引。该文件链接到每个组件的站点地图,其中包含各个页面的URL。此列表包括您文档站点的入口点,index.html。
-
在某些操作系统上,您可以通过在命令行中键入
open
,然后输入HTML文件的名称来直接打开站点。site $ open index.html
或者,您可以在浏览器中导航到目的地文件夹内的HTML页面。如果您一直在使用演示材料,一旦找到demo-site目录,导航到文件build/site/index.html。
私有git存储库
Antora可以使用HTTPS上的HTTP基本身份验证与私有存储库进行身份验证。请参阅私有存储库身份验证以了解更多信息。
包含大型打包文件的存储库
如果git存储库包含非常大的打包文件(大于2g),Antora可能无法读取。如果出现这种情况,您将收到以下错误:
FATAL (antora) : 无法读取 null 的属性(读取 'slice')
这个失败是由Antora使用的git客户端(isomorphic-git)的已知限制引起的。这个限制是由Node.js运行时的内存设置中的硬限制造成的。以下是底层错误消息:
RangeError [ERR_FS_FILE_TOO_LARGE]: 文件大小大于 2 GiB
2g是Node.js中的最大缓冲区大小。换句话说,Node.js对其能够读取到内存中的文件大小有一个上限。如果打包文件超过此大小,Node.js和isomorphic-git将会失败。为了读取更大的文件,isomorphic-git将不得不切换到流而不是将整个文件放入缓冲区,如果这是可行的话。
对于本地git存储库,解决方法是配置git,使其限制本地创建的任何打包文件的大小。这可以通过pack.packSizeLimit
配置设置来完成。
$ git config pack.packSizeLimit 1g && git gc
您可以在git文档的git-pack-objects帮助页面中找到有关此设置的信息。
请记住,这个解决方法只适用于本地存储库(已经克隆和配置的存储库)。更改本地存储库的打包大小不会改变远程存储库的存储设置。pack.packSizeLimit
也需要在git服务器上进行调整,以便git不会尝试通过网络发送过大的打包文件。