Asciidoctor 社区

Asciidoctor 社区项目(又名 Asciidoctor 项目)是一项持续的努力,旨在开发一个可访问、全面且开源的工具链和工作台,用于在各种平台和运行时上编写和发布 AsciiDoc 内容。

除了用于 Ruby、JVM 平台和 JavaScript 的 AsciiDoc 处理器外,该社区还为自动化工具、浏览器和 IDE 开发插件/附加组件,以及用于生成其他输出格式的扩展转换器、用于扩展集成的适配器以及用于用图表等富媒体增强 AsciiDoc 文档的扩展。

Asciidoctor 社区还通过引入新想法和创新来推动 AsciiDoc 语言的演进,并通过文档和宣传来推广 AsciiDoc。

项目

Asciidoctor 项目是一个松散组织的集合。所有 Asciidoctor 项目都是开源的(MIT 或 Apache 2.0)。这些项目的源代码仓库和问题跟踪器托管在 GitHub 上。每个项目都有自己的项目负责人和维护者(aka 项目团队),他们决定项目的运行方式。所有贡献者都自愿投入时间来从事项目。 Asciidoctor 是主要项目,因此为社区提供了整体方向和愿景。项目通常遵循语义版本控制,尽管并非(尚未)所有项目都如此。

文档

本网站上的所有文档均用 AsciiDoc 编写,并由 Antora 发布。

本网站的源代码不存储在单个存储库中。而是分布在多个存储库中。采用此策略是为了确保内容、构建和 UI(aka 主题)不混淆,并可以独立管理。最值得注意的是,每个项目的文档都与其所记录的项目一起存储。Antora 聚合了所有这些存储库的材料,以生成统一的网站。

以下是构成此网站的存储库的摘要。

playbook 存储库 (docs.asciidoctor.org)

包含将所有文档整合在一起并配置网站的构建清单。文档内容源和 UI 包在 Antora playbook 文件 antora-playbook.yml 中定义。

内容存储库

每个存储库都包含其所记录项目的文档。例如,Asciidoctor core 的文档可以在存储库 github.com/asciidoctor/asciidoctor 的 docs 文件夹下找到。您可以通过查看每个页面上的“编辑此页面”链接来查找其他项目的文档位置。这些存储库的位置在 Antora playbook 文件中定义。

UI 存储库 (asciidoctor-docs-ui)

包含 UI 材料(即页面模板、CSS、图像和脚本)以及将它们编译成 UI 包的构建脚本。它还托管已发布的 UI 包。UI 包的位置在 Antora playbook 文件中定义。

网站的构建过程是将 playbook 存储库中的 Antora playbook 文件传递给 antora 命令。

$ antora antora-playbook.yml

该网站每晚构建和发布,并在 playbook 存储库的每次提交时发布。如果您向 playbook 存储库提交 PR,您将获得一个部署预览,其中包括您添加到 playbook 存储库的任何其他内容源。有关网站如何构建以及如何在本地构建和预览网站的更多信息,请参阅 playbook 存储库

与 AsciiDoc 的关系

Asciidoctor 是我们目前所知的 AsciiDoc 语法的参考解析器/解释器。换句话说,Asciidoctor 是如何解析和转换现代 AsciiDoc 的官方参考。

鉴于这一地位,Asciidoctor 本身就符合 AsciiDoc 语法。自从从 AsciiDoc.py 接管这一角色以来,Asciidoctor 已经演进了 AsciiDoc 语法。然而,为了继续演进语法,同时鼓励更多实现而不引入分歧,我们知道我们需要一个更正式的 AsciiDoc 定义。换句话说,我们需要一个独立于 Asciidoctor 的 AsciiDoc 标准。

Asciidoctor 项目与 OpenDevise 一起,一直是 Eclipse Foundation 的AsciiDoc 工作组成立的推动力量。AsciiDoc 工作组的主要目标是监督AsciiDoc 语言正式规范的创建。虽然 Asciidoctor 计划成为一个兼容的实现,但该规范和相关的兼容性计划也邀请其他实现出现。至少有一个这样的实现将在 Eclipse Foundation Development Process (EFDP) 下开发。该项目是Eclipse Austen,它旨在成为一个独立的、兼容的 AsciiDoc 处理器,可以在 JVM 上运行。

未来

我们预计 Asciidoctor 项目将在未来许多年里在 AsciiDoc 社区中发挥主导作用。