asciidoctor

asciidoctor

开源Ruby文本处理器,可将AsciiDoc文档转换为HTML 5、DocBook 5、PDF等多种格式

Asciidoctor是一款开源的Ruby文本处理器,可将AsciiDoc文档转换为HTML 5、DocBook 5、PDF等多种格式。它提供丰富的扩展生态系统,包括转换器、构建插件等工具,便于创作和发布AsciiDoc内容。除Ruby环境外,Asciidoctor还支持通过AsciidoctorJ在JVM上运行,或通过Asciidoctor.js在JavaScript环境中使用。

AsciidoctorAsciiDoc文本处理器文档转换RubyGithub开源项目

= Asciidoctor Dan Allen https://github.com/mojavelinux[@mojavelinux]; Sarah White https://github.com/graphitefriction[@graphitefriction] // 设置: :idprefix: :idseparator: - :source-language: ruby ifndef::env-github[:icons: font] ifdef::env-github[] :status: :caution-caption: :fire: :important-caption: :exclamation: :note-caption: :paperclip: :tip-caption: :bulb: :warning-caption: :warning: endif::[] // 变量: :release-version: 2.0.22 // URL: :url-org: https://github.com/asciidoctor :url-repo: {url-org}/asciidoctor :url-asciidoctorj: {url-org}/asciidoctorj :url-asciidoctorjs: {url-org}/asciidoctor.js :url-gradle-plugin: {url-org}/asciidoctor-gradle-plugin :url-maven-plugin: {url-org}/asciidoctor-maven-plugin :url-asciidoclet: {url-org}/asciidoclet :url-project: https://asciidoctor.org ifdef::env-site[:url-project: link:] :url-docs: https://docs.asciidoctor.org :url-news: {url-project}/news :url-manpage: {url-project}/man/asciidoctor :url-issues: {url-repo}/issues :url-contributors: {url-repo}/graphs/contributors :url-rel-file-base: link: :url-rel-tree-base: link: ifdef::env-site,env-yard[] :url-rel-file-base: {url-repo}/blob/HEAD/ :url-rel-tree-base: {url-repo}/tree/HEAD/ endif::[] :url-changelog: {url-rel-file-base}CHANGELOG.adoc :url-contribute: {url-rel-file-base}CONTRIBUTING.adoc :url-license: {url-rel-file-base}LICENSE :url-tests: {url-rel-tree-base}test :url-discuss: https://discuss.asciidoctor.org :url-chat: https://chat.asciidoctor.org :url-rubygem: https://rubygems.org/gems/asciidoctor :url-what-is-asciidoc: {url-docs}/asciidoctor/latest/#relationship-to-asciidoc :url-install-docker: https://github.com/asciidoctor/docker-asciidoctor :url-opal: https://opalrb.com :url-tilt: https://github.com/rtomayko/tilt :url-ruby: https://www.ruby-lang.org // 图片: :image-url-screenshot: https://cdn.jsdelivr.net/gh/asciidoctor/asciidoctor/screenshot.png

{url-project}[Asciidoctor]是一个快速、开源的基于Ruby的文本处理器,用于将AsciiDoc(R)解析为文档模型并将其转换为HTML 5、DocBook 5、手册页、PDF、EPUB 3等输出格式。

Asciidoctor还拥有扩展、转换器、构建插件和工具的生态系统,可帮助您创作和发布用{url-what-is-asciidoc}[AsciiDoc]编写的内容。 您可以在{url-docs}找到这些项目的文档。

除了在Ruby上运行外,Asciidoctor还可以使用{url-asciidoctorj}[AsciidoctorJ]在JVM上执行,或使用{url-asciidoctorjs}[Asciidoctor.js]在任何JavaScript环境中执行。

ifndef::env-site,env-yard[] 本文档还提供以下语言版本: + {url-rel-file-base}README-zh_CN.adoc[简体中文] | {url-rel-file-base}README-de.adoc[Deutsch] | {url-rel-file-base}README-fr.adoc[Français] | {url-rel-file-base}README-jp.adoc[日本語] endif::[]

.主要文档 [.compact]

  • {url-docs}/asciidoctor/latest/[Asciidoctor文档]
  • {url-docs}/asciidoc/latest/[AsciiDoc语言文档]
  • {url-docs}/asciidoc/latest/syntax-quick-reference/[AsciiDoc语法快速参考]

ifdef::status[] image:https://img.shields.io/gem/v/asciidoctor.svg[最新版本, link={url-rubygem}] image:https://img.shields.io/badge/rubydoc.info-{release-version}-blue.svg[库(API)文档,link=https://www.rubydoc.info/gems/asciidoctor/{release-version}] image:https://github.com/asciidoctor/asciidoctor/workflows/CI/badge.svg[构建状态(GitHub Actions),link={url-repo}/actions] image:https://img.shields.io/badge/zulip-join_chat-brightgreen.svg[项目聊天(Zulip),link={url-chat}] endif::[]

== 赞助商

我们想要感谢我们的{url-project}/supporters[赞助商]对改善技术文档状况的承诺,感谢他们对本项目的支持。 感谢赞助商! 没有你们的慷慨支持,Asciidoctor将无法实现。

你可以通过https://opencollective.com/asciidoctor[OpenCollective]成为赞助商来支持这个项目。

== AsciiDoc处理和内置转换器

AsciiDoc是语言。+ Asciidoctor是处理器。

Asciidoctor读取AsciiDoc源文件,如下图左侧面板所示,并将其转换为可发布的格式,如右侧面板所示的HTML 5。

image::{image-url-screenshot}[AsciiDoc源文件和相应渲染的HTML预览]

Asciidoctor默认为三种输出格式提供内置的{url-docs}/asciidoctor/latest/converters/[转换器]:{url-docs}/asciidoctor/latest/html-backend/[HTML 5]、{url-docs}/asciidoctor/latest/docbook-backend/[DocBook 5]和{url-docs}/asciidoctor/latest/manpage-backend/man page。 其他转换器(如PDF和EPUB 3)由单独的gem提供。 Asciidoctor还提供了开箱即用的HTML体验,包括{url-docs}/asciidoctor/latest/html-backend/default-stylesheet/[默认样式表]和内置集成,如Font Awesome(用于图标)、highlight.js、Rouge和Pygments(用于源代码高亮)以及MathJax(用于STEM处理)。

== Asciidoctor生态系统

虽然Asciidoctor是用Ruby编写的,但这并不意味着您需要Ruby才能使用它。 Asciidoctor可以使用{url-docs}/asciidoctorj/latest/[AsciidoctorJ]在JVM上执行,或使用{url-docs}/asciidoctor.js/latest/[Asciidoctor.js]在任何JavaScript环境(包括浏览器)中执行。

安装Asciidoctor处理器只是您发布体验的开始。 Asciidoctor为您提供了一个扩展和工具的生态系统,包括附加转换器、扩展语法、构建插件以及集成的写作和预览环境:

  • {url-docs}/diagram-extension/latest/[Asciidoctor Diagram]
  • {url-docs}/maven-tools/latest/[Maven插件和站点模块]
  • {url-gradle-plugin}[Gradle插件]
  • {url-docs}/asciidoclet/latest/[Asciidoclet]
  • {url-docs}/reveal.js-converter/latest/[reveal.js转换器]
  • {url-docs}/epub3-converter/latest/[EPUB 3转换器]
  • https://intellij-asciidoc-plugin.ahus1.de/docs[IntelliJ插件]
  • {url-docs}/asciidoctor/latest/tooling/#web-browser-add-ons-preview-only[网页浏览器扩展]
  • {url-org}[以及更多]

Asciidoctor是AsciiDoc.py的继任者。 如果您正在使用AsciiDoc.py,请参阅{url-docs}/asciidoctor/latest/migrate/asciidoc-py/[从AsciiDoc.py迁移]了解如何升级到Asciidoctor。

== 要求

Asciidoctor可在Linux、macOS和Windows上运行,并要求使用以下{url-ruby}[Ruby]实现之一:

  • CRuby(又称MRI) 2.7 - 3.3
  • JRuby 9.2 - 9.4
  • TruffleRuby (GraalVM)

[CAUTION]

如果您使用的是非英语Windows环境,在调用Asciidoctor时可能会遇到Encoding::UndefinedConversionError错误。 要解决此问题,我们建议将默认的外部和内部字符编码覆盖为utf-8。 您可以通过设置RUBYOPT环境变量来实现:

RUBYOPT="-E utf-8:utf-8"

进行此更改后,所有Unicode相关的问题应该都解决了。

如果您使用的是Eclipse等IDE,请确保也将其中的编码设置为UTF-8。 Asciidoctor经过优化,可以使用UTF-8作为默认编码。

== 安装

Asciidoctor作为名为{url-rubygem}[asciidoctor^]的RubyGem(又称gem)打包并分发到RubyGems.org。 asciidoctor gem可以使用Ruby打包工具(gem或bundle)在所有主要操作系统上安装。 Asciidoctor还以Docker镜像、众多Linux发行版的软件包以及macOS软件包(通过Homebrew和MacPorts)的形式分发。

=== Linux包管理器

包管理器安装的Asciidoctor版本可能与Asciidoctor的最新发布版本不匹配。 请查阅您的发行版的软件包仓库,了解每个发行版打包的版本。

如果您想使用比包管理器安装的版本更新的Asciidoctor版本,请参阅<<gem-install,gem安装说明>>。

==== apk (Alpine Linux)

要在Alpine Linux上安装gem,请打开终端并输入:

$ sudo apk add asciidoctor

==== pacman (Arch Linux)

要在基于Arch的发行版上安装gem,请打开终端并输入:

$ sudo pacman -S asciidoctor

==== APT

在Debian和基于Debian的发行版(如Ubuntu)上,使用APT安装Asciidoctor。 要安装软件包,请打开终端并输入:

$ sudo apt-get install -y asciidoctor

==== DNF

在基于RPM的Linux发行版(如Fedora、CentOS和RHEL)上,使用DNF包管理器安装Asciidoctor。 要安装软件包,请打开终端并输入:

$ sudo dnf install -y asciidoctor

=== macOS

==== Homebrew

您可以使用macOS包管理器https://brew.sh[Homebrew]安装Asciidoctor。 如果您的计算机上没有Homebrew,请先完成https://brew.sh[安装说明]。

安装Homebrew后,您就可以安装asciidoctor gem了。 打开终端并输入:

$ brew install asciidoctor

Homebrew将asciidoctor gem安装到独立于系统gem的专用前缀中。

==== MacPorts

您还可以使用macOS的另一个包管理器https://www.macports.org[MacPorts]安装Asciidoctor。 如果您的计算机上没有MacPorts,请先完成https://www.macports.org/install.php[安装说明]。

安装MacPorts后,您就可以通过https://ports.macports.org/port/asciidoctor/[Asciidoctor port]安装asciidoctor gem了。 打开终端并输入:

$ sudo port install asciidoctor

=== Windows

要在Windows上使用Asciidoctor,您有两个选择。

==== Chocolatey

如果您的机器上已经使用https://chocolatey.org[chocolatey],可以使用:

choco install ruby

然后按照<<gem-install,gem安装说明>>进行操作。

==== Rubyinstaller

或者您可以使用https://rubyinstaller.org/downloads/[Rubyinstaller],下载适合您Windows版本的软件包,安装后按照<<gem-install,gem安装说明>>进行操作。

[#gem-install] === gem install

使用gem install安装Asciidoctor之前,您应该设置https://rvm.io[RVM](或类似工具)以在您的主目录(即用户空间)中安装Ruby。 然后,您可以安全地使用gem命令来安装或更新Asciidoctor gem,或任何其他gem。 使用RVM时,gem安装在与系统隔离的位置。 (您永远不应该使用gem命令来安装系统范围的gem)。

使用RVM安装Ruby并使用rvm use 3.0激活它后,打开终端并输入:

$ gem install asciidoctor

如果您想安装预发布版本(例 $ asciidoctor -D output README.adoc

asciidoctor {url-manpage}[手册页]提供了命令行界面的完整参考。

请参考以下资源以了解更多关于如何使用 asciidoctor 命令的信息。

  • {url-docs}/asciidoctor/latest/cli/[使用 CLI 处理 AsciiDoc]
  • {url-docs}/asciidoctor/latest/cli/options/[CLI 选项]

=== Ruby API

Asciidoctor 还提供了一个 API。 该 API 旨在与其他 Ruby 软件集成,如 Rails、GitHub 和 GitLab,以及其他语言,如 Java(通过 AsciidoctorJ)和 JavaScript(通过 Asciidoctor.js)。

要在您的应用程序中使用 Asciidoctor,首先需要引入 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[AsciiDoc].' Asciidoctor.convert content, safe: :safe

如果您想要完整的 HTML 文档,请按如下方式启用 header_footer 选项:


content = 'Zen in the art of writing https://asciidoctor.org[AsciiDoc].' html = Asciidoctor.convert content, header_footer: true, safe: :safe

如果您需要访问解析后的文档,可以将转换分为离散步骤:


content = 'Zen in the art of writing https://asciidoctor.org[AsciiDoc].' document = Asciidoctor.load content, header_footer: true, safe: :safe puts document.doctitle html = document.convert

请记住,如果您不喜欢 Asciidoctor 产生的输出,您可以改变它! Asciidoctor 支持自定义转换器,可以处理从解析文档到生成输出的转换。

一种简单的方法是使用模板转换器来逐步自定义输出。 模板转换器允许您提供一个 {url-tilt}[Tilt] 支持的模板文件来处理文档中任何节点的转换。

无论您采用何种方式,您都可以对输出进行 100% 的控制。 有关如何使用 API 或自定义输出的更多信息,请参阅:

  • {url-docs}/asciidoctor/latest/api/[使用 API 处理 AsciiDoc]
  • {url-docs}/asciidoctor/latest/api/options/[API 选项]
  • {url-docs}/asciidoctor/latest/safe-modes/[安全模式]

== 贡献

我们始终欢迎新的贡献者! 如果您在源代码、文档或网站内容中发现错误或遗漏,请不要犹豫,提交一个问题或打开一个带有修复的拉取请求。

以下是您可以贡献的一些方式:

  • 使用预发布版本(alpha、beta 或预览版)
  • 报告错误
  • 提出新功能建议
  • 编写或编辑文档
  • 编写带有测试的代码 -- 没有补丁太小。 ** 修复拼写错误 ** 添加注释 ** 清理不一致的空白 ** 编写测试!
  • 重构代码
  • 修复 {url-issues}[问题]
  • 审查补丁

{url-contribute}[贡献] 指南提供了有关如何创建、样式化和提交问题、功能请求、代码和文档到 Asciidoctor 的信息。

== 获取帮助

Asciidoctor 的开发旨在帮助您轻松编写和发布您的内容。 但没有您的输入,我们无法做到这一点。 如果您需要帮助或想提供反馈,请按照文档中 https://docs.asciidoctor.org/about/support/[获取帮助] 页面上列出的资源链接。 以下是一个快速摘要:

项目聊天(Zulip):: {url-chat} 讨论列表(存档):: {url-discuss} 社交媒体(Twitter):: 关注 https://twitter.com/asciidoctor[@asciidoctor] 或搜索 https://twitter.com/search?f=tweets&q=%23asciidoctor[#asciidoctor] 标签

ifdef::env-github[] 关于 Asciidoctor 的更多信息和文档可以在项目网站上找到。

{url-project}[首页] | {url-news}[新闻] | {url-docs}[文档] endif::[]

GitHub 上的 Asciidoctor 组织托管了项目的源代码、问题跟踪器和子项目。

源代码仓库(git):: {url-repo} 问题跟踪器:: {url-issues} GitHub 上的 Asciidoctor 组织:: {url-org}

== 行为准则

Asciidoctor 核心项目受 Asciidoctor 项目社区的 https://github.com/asciidoctor/.github/blob/HEAD/CODE-OF-CONDUCT.md[行为准则] 管理。 通过参与,您同意遵守此准则。 让我们共同努力,使这成为一个欢迎、专业、包容和安全的环境。

== 版本控制和发布政策

本项目遵循语义版本控制(主版本号.次版本号.修订号)。 通常,修订版本只针对当前的次要版本发布。 然而,在处理安全漏洞和其他高优先级问题时,会根据具体情况做出例外。

== 版权和许可

版权所有 (C) 2012-现在 Dan Allen、Sarah White、Ryan Waldron 和 Asciidoctor 的个人贡献者。 本软件的使用根据 MIT 许可证的条款授权。

完整的许可证文本请参见 {url-license}[LICENSE]。

== 作者

Asciidoctorhttps://github.com/mojavelinux[Dan Allen] 和 https://github.com/graphitefriction[Sarah White] 领导,并得到了 Asciidoctor 优秀社区中 {url-contributors}[许多个人] 的贡献。 该项目于 2012 年由 https://github.com/erebor[Ryan Waldron] 发起,基于 https://github.com/nickh[Nick Hengeveld] 为 Git 网站编写的原型。

AsciiDoc.py 由 Stuart Rackham 从 https://github.com/asciidoc-py/asciidoc-py2/blob/HEAD/CHANGELOG.txt[2002 年到 2013 年] 开始并维护,并得到了 https://github.com/asciidoc-py/asciidoc-py2/graphs/contributors[AsciiDoc.py 社区] 中许多个人的贡献。

== 商标

AsciiDoc(R) 和 AsciiDoc Language(TM) 是 Eclipse Foundation, Inc. 的商标。

ifndef::env-site[] == 更新日志

ifeval::[{safe-mode-level} < 20] include::CHANGELOG.adoc[tag=compact,leveloffset=+1] endif::[]

有关旧版本中完整的更改列表,请参阅 {url-changelog}[CHANGELOG]。 endif::[]

编辑推荐精选

讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

TRELLIS

TRELLIS

用于可扩展和多功能 3D 生成的结构化 3D 潜在表示

TRELLIS 是一个专注于 3D 生成的项目,它利用结构化 3D 潜在表示技术,实现了可扩展且多功能的 3D 生成。项目提供了多种 3D 生成的方法和工具,包括文本到 3D、图像到 3D 等,并且支持多种输出格式,如 3D 高斯、辐射场和网格等。通过 TRELLIS,用户可以根据文本描述或图像输入快速生成高质量的 3D 资产,适用于游戏开发、动画制作、虚拟现实等多个领域。

下拉加载更多