= Hello, AsciiDoc!
Doc Writer <doc@example.com>
An introduction to http://asciidoc.org[AsciiDoc].
== First Section
* item 1
* item 2
[source,ruby]
puts "Hello, World!"= Hello, AsciiDoc!
Doc Writer <doc@example.com>
An introduction to http://asciidoc.org[AsciiDoc].
== First Section
* item 1
* item 2
[source,ruby]
puts "Hello, World!"Asciidoctor 是一个快速、开源、基于 Ruby 的文本处理器,用于解析 AsciiDoc® 成文档模型,并将其转换为 HTML 5、DocBook 5、手册页、PDF、EPUB 3 及其他输出格式。
Asciidoctor 还拥有一个由扩展、转换器、构建插件和工具组成的生态系统,可以帮助您编写和发布用 AsciiDoc 编写的内容。您可以在 https://docs.asciidoctor.org.cn 找到这些项目的文档。
除了在 Ruby 上运行之外,Asciidoctor 还可以通过 AsciidoctorJ 在 JVM 上执行,或者通过 Asciidoctor.js 在任何 JavaScript 环境中执行。
我们要感谢我们的 赞助商,感谢他们通过支持本项目来致力于提升技术文档的水平。谢谢你们,赞助商!没有你们慷慨的支持,Asciidoctor 就不可能实现。
您可以通过 OpenCollective 成为赞助商来支持本项目。
AsciiDoc 是语言。
Asciidoctor 是处理器。
Asciidoctor 读取 AsciiDoc 源文件(如下图左侧面板所示),并将其转换为可发布格式,例如 HTML 5(如下图右侧面板所示)。
尽管 Asciidoctor 是用 Ruby 编写的,但这并不意味着您必须使用 Ruby 才能使用它。Asciidoctor 可以通过 AsciidoctorJ 在 JVM 上执行,或者在任何 JavaScript 环境(包括浏览器)中使用 Asciidoctor.js 执行。
安装 Asciidoctor 处理器只是您发布体验的开始。Asciidoctor 让您可以访问由扩展和工具组成的生态系统,包括附加转换器、扩展语法、构建插件以及集成的写作和预览环境。
Asciidoctor 是 AsciiDoc.py 的后继者。如果您正在使用 AsciiDoc.py,请参阅 从 AsciiDoc.py 迁移,了解如何升级到 Asciidoctor。
Asciidoctor 可在 Linux、macOS 和 Windows 上运行,并需要以下其中一个 Ruby 实现:
CRuby (又名 MRI) 2.3 - 3.3
JRuby 9.1 - 9.4
TruffleRuby (GraalVM)
|
如果您使用的是非英语的 Windows 环境,在调用 Asciidoctor 时可能会遇到 RUBYOPT="-E utf-8:utf-8" 做出此更改后,您所有的 Unicode 问题都应该迎刃而解。 如果您使用 Eclipse 等 IDE,请确保在那里也将编码设置为 UTF-8。Asciidoctor 经过优化,可以默认使用 UTF-8 编码。 |
Asciidoctor 被打包并分发到 RubyGems.org,作为名为 asciidoctor 的 RubyGem(又名 gem)。可以使用 Ruby 包管理工具(gem 或 bundle)在所有主流操作系统上安装 asciidoctor gem。Asciidoctor 还以 Docker 镜像、众多 Linux 发行版的包以及 macOS 包(通过 Homebrew 和 MacPorts)的形式分发。
包管理器安装的 Asciidoctor 版本可能与 Asciidoctor 的最新版本不符。请查阅您发行版的包存储库,了解每个发行版发布版本所打包的版本。
如果您想使用比包管理器安装的版本更新的 Asciidoctor 版本,请参阅 gem 安装说明。
安装 Homebrew 后,您就可以安装 asciidoctor gem 了。打开终端并输入:
$ brew install asciidoctor
Homebrew 将 asciidoctor gem 安装到一个独立的、与系统 gem 分离的前缀中。
安装 MacPorts 后,您就可以通过 Asciidoctor 端口 安装 asciidoctor gem 了。打开终端并输入:
$ sudo port install asciidoctor
要在 Windows 上使用 Asciidoctor,您有两个选择。
或者,您可以使用 Rubyinstaller,下载适用于您 Windows 版本的安装包,安装完成后,继续执行 gem 安装说明。
在使用 gem install 安装 Asciidoctor 之前,您应该设置 RVM(或类似工具),以便在您的主目录(即用户空间)中安装 Ruby。然后,您可以安全地使用 gem 命令来安装或更新 Asciidoctor gem,或任何其他 gem。在使用 RVM 时,gem 会安装在与系统隔离的位置。(您永远不应该使用 gem 命令来安装全局 gem)。
使用 RVM 安装 Ruby 并激活它(例如 rvm use 3.0)后,打开终端并输入:
$ gem install asciidoctor
如果您想安装预发布版本(例如,发布候选版),请使用:
$ gem install asciidoctor --pre
在项目的根文件夹(或当前目录)中创建一个 Gemfile:
像这样将 asciidoctor gem 添加到您的 Gemfile 中:
source 'https://rubygems.org.cn'
gem 'asciidoctor'
# or specify the version explicitly
# gem 'asciidoctor', '2.0.23'
保存 Gemfile
打开终端并使用以下命令安装 gem:
$ bundle
要升级 gem,请在 Gemfile 中指定新版本并再次运行 bundle。不建议使用 bundle update(不指定 gem)来更新,因为它还会更新其他 gem,这可能不是您想要的结果。
如果 Asciidoctor gem 成功安装,asciidoctor 命令行界面 (CLI) 将在您的 PATH 中可用。要验证它是否可用,请在终端中运行以下命令:
$ asciidoctor --version
您应该会在终端中看到有关 Asciidoctor 版本和您的 Ruby 环境的信息。
Asciidoctor 2.0.23 [https://asciidoctor.org.cn] Runtime Environment (ruby 3.0.1p64 [x86_64-linux]) (lc:UTF-8 fs:UTF-8 in:UTF-8 ex:UTF-8)
asciidoctor 命令允许您从命令行(即终端)调用 Asciidoctor。
以下命令将 README.adoc 文件转换为 HTML,并将结果保存在同一目录下的 README.html 文件中。生成的 HTML 文件名是通过更改源文件的文件扩展名为 .html 来派生的。
$ asciidoctor README.adoc
您可以通过添加各种标志和开关来控制 Asciidoctor 处理器,有关这些信息,您可以使用:
$ asciidoctor --help
例如,要将文件写入不同的目录,请使用:
$ asciidoctor -D output README.adoc
asciidoctor 手册页提供了命令行界面的完整参考。
请参阅以下资源,以了解更多关于如何使用 asciidoctor 命令的信息:
Asciidoctor 还提供了一个 API。该 API 用于与其他 Ruby 软件(如 Rails、GitHub 和 GitLab)以及其他语言(如 Java(通过 AsciidoctorJ)和 JavaScript(通过 Asciidoctor.js))集成。
要在您的应用程序中使用 Asciidoctor,您首先需要 require 该 gem:
require 'asciidoctor'
然后,您可以使用以下命令将 AsciiDoc 源文件转换为 HTML 文件:
Asciidoctor.convert_file 'README.adoc', to_file: true, safe: :safe
通过 API 使用 Asciidoctor 时,默认的安全模式是 :secure。在安全模式下,许多核心功能被禁用,包括 include 指令。如果您想启用这些功能,您需要明确将安全模式设置为 :server(推荐)或 :safe。 |
您还可以使用以下命令将 AsciiDoc 字符串转换为可嵌入的 HTML(用于插入到 HTML 页面中):
content = '_Zen_ in the art of writing https://asciidoctor.org.cn[AsciiDoc].'
Asciidoctor.convert content, safe: :safe
如果您需要完整的 HTML 文档,请像这样启用 header_footer 选项:
content = '_Zen_ in the art of writing https://asciidoctor.org.cn[AsciiDoc].'
html = Asciidoctor.convert content, header_footer: true, safe: :safe
如果您需要访问解析后的文档,可以将转换分成几个独立的步骤:
content = '_Zen_ in the art of writing https://asciidoctor.org.cn[AsciiDoc].'
document = Asciidoctor.load content, header_footer: true, safe: :safe
puts document.doctitle
html = document.convert
请记住,如果您不喜欢 Asciidoctor 生成的输出,您可以更改它! Asciidoctor 支持自定义转换器,这些转换器可以处理从解析的文档到生成输出的转换。
一种轻松自定义输出的方法是使用模板转换器。模板转换器允许您提供一个 Tilt 支持的模板文件来处理文档中任何节点的转换。
无论您采用哪种方式,您都可以完全控制输出。有关如何使用 API 或自定义输出的更多信息,请参阅:
我们一直欢迎新贡献者!如果您在源代码、文档或网站内容中发现错误或遗漏,请随时提交 issue 或发起 pull request 来进行修复。
以下是您可以贡献的一些方式:
使用预发布(alpha、beta 或预览)版本
报告 bug
建议新功能
编写或编辑文档
编写带有测试的代码——任何补丁都不嫌小。
修复拼写错误
添加注释
清理不一致的空格
编写测试!
重构代码
修复 issue
审查补丁
CONTRIBUTING.adoc 文件提供了关于如何创建、样式化和提交 issue、功能请求、代码和文档到 Asciidoctor 的信息。
Asciidoctor 的开发旨在帮助您轻松编写和发布内容。但没有您的反馈,我们是做不到的!我们鼓励您在讨论列表、Twitter 或聊天室中提问并讨论项目的任何方面。
关注 @asciidoctor 或搜索 #asciidoctor 标签
GitHub 上的 Asciidoctor 组织托管了项目的源代码、issue 跟踪器和子项目。
核心 Asciidoctor 项目遵循 Asciidoctor 项目社区的行为准则。通过参与,您同意遵守此准则。让我们共同努力,为所有人创造一个受欢迎、专业、包容和安全的环境。
版权 © 2012-至今 Dan Allen、Sarah White、Ryan Waldron 以及 Asciidoctor 的个人贡献者。此软件的使用根据 MIT 许可条款授予。
请参阅 LICENSE 以获取完整的许可文本。
Asciidoctor 由 Dan Allen 和 Sarah White 领导,并得到了 Asciidoctor 社区众多个人贡献者的支持。该项目于 2012 年由 Ryan Waldron 基于 Nick Hengeveld 为 Git 网站编写的原型而启动。
AsciiDoc.py 由 Stuart Rackham 从 2002 年至 2013 年启动和维护,并得到了 AsciiDoc.py 社区众多个人的贡献。
使用 AsciiDoc 进行文档标记。真的。它对人类来说实际上是可读的,比 XML 更容易解析,而且灵活得多。
Asciidoctor 项目致力于围绕 AsciiDoc 语法,为日益增长的生态系统(包括 Ruby、JavaScript 和 JVM)带来全面且易于访问的发布工具链。
除了 AsciiDoc 处理器和一套样式表外,该项目还为 Maven、Gradle 和 Guard 提供了插件,并为 Fedora、Debian 和 Ubuntu 等操作系统提供软件包。它还通过引入新思想和创新来推动 AsciiDoc 的发展,并通过教育和宣传来推广 AsciiDoc。
本网站是开源的!源代码托管在 GitHub 上的 Asciidoctor 组织下。
如果您想通过改进它来提供帮助,请fork 该项目,修改内容,然后提交一个 pull request。当 pull request 被合并后,网站将自动更新。