AsciiDoc 的新资源

作者: Dan Allen -

AsciiDoc 是一个非常出色的文档编写工具,但关于它的信息却远远不够。

今天,我很高兴地宣布,AsciiDoc 有了一个新资源,那就是 asciidoctor.org。除了作为 Asciidoctor 项目及其集成内容的官方项目页面外,该网站还通过教育和宣传来推广 AsciiDoc。

dawn
新时代的黎明 图片来源: bartvandorp

该网站的一大亮点是收集了一系列新的 AsciiDoc 指南

这些指南的目的是回答您关于 AsciiDoc 的问题,并帮助您快速熟悉其语法。它们通过遵循一套推荐的约定来呈现 AsciiDoc,以帮助您创建更一致的文档并最大化您的写作效率。

如果您看到想要进行的更改,**贡献指南非常容易!**

这些指南是用 AsciiDoc 编写并 托管在 GitHub 上的。如果您想对其中一个指南进行更改,只需查找右侧栏中的“**Edit**”按钮并单击它。这会将您带到 GitHub 上的编辑器,您可以在那里进行更改并将其作为拉取请求提交。

或者,您可以克隆项目,在本地进行更改,提交它,然后像往常一样发送拉取请求。

一旦更改合并到 `master` 分支,它就会自动发布。

我希望您觉得这些指南很有用,并期待您的反馈。让我们一起将文档编写的痛苦抛之脑后!


Asciidoctor 驱动的 AsciiDoc 回归 GitHub 及其 500 多万个存储库

作者: Dan Allen -

自十二月初以来,整个假期,GitHub 的 Ryan Waldron、Red Hat 的 Dan Allen 以及 其他贡献者 一直在合作开发 **Asciidoctor**(项目网站代码仓库),这是一个用纯 Ruby 编写的 AsciiDoc 的新开源实现[1]

该实现启动时,心中有两个核心目标:

  1. 改进 AsciiDoc 源文件在 GitHub 存储库和 gist 中的渲染效果

  2. 通过提供第一个符合标准的 Ruby 移植版标记语言,将 AsciiDoc 带入 Ruby 世界

经过大量艰苦的工作和彻底的安全审计,我们非常激动地宣布……

Note **Asciidoctor 现在已部署**,用于渲染 GitHub 上 **500 万多个存储库**中的 AsciiDoc 标记。

Asciidoctor 0.1.0 也可在 rubygems.org 上找到,并且可以通过 RubyGems(`gem install asciidoctor`)在本地安装。

关于 AsciiDoc

AsciiDoc 是一种轻量级标记语言,类似于 Markdown。AsciiDoc 超越了 Markdown,支持起草文章、技术手册和书籍所需的所有结构化元素。O'Reilly 的几位作者,包括 Matthew McCulloughTim BerglundMatt Neuburg,都曾使用它为那套标志性的技术图书馆撰写书籍。AsciiDoc 完全可以作为 DocBook 的简写替代品,它也可以输出 DocBook。

DocBook 很好,但(像 XML 一样)它不适合编辑或(由人类)合并更改。使用 AsciiDoc(可完美转换为 DocBook)是开发的一种更简单的方法。

— Dag Wieers

可以这样理解 AsciiDoc 和 DocBook 的关系:AsciiDoc 之于 DocBook,正如 RelaxNG Compact 之于 XML Schema。使用 AsciiDoc,您可以去掉尖括号(即 XML),但保留其语义。

这是一个用 AsciiDoc 编写的文档示例,显示在它生成的输出上方。

(您不想看到这个示例的 DocBook 版本。我们只能说,屏幕上没有足够的空间向您展示。)

源文档

= Asciidoctor
Ryan Waldron, Dan Allen

https://asciidoctor.org.cn[Asciidoctor] is a native Ruby processor
for converting AsciiDoc source files and strings into HTML 5,
DocBook 4.5 and other formats.

== Installation

You can install the Asciidoctor RubyGem using the +gem+ command:

 gem install asciidoctor

On Fedora, you can install via an RPM package
(https://bugzilla.redhat.com/show_bug.cgi?id=889011[pending])
using the +yum+ command:

 yum install rubygem-asciidoctor

Now you are ready to start using Asciidoctor!

== Benefits

Asciidoctor is:

* compliant
* fast
* secure
* stable

'Give it a try!'

渲染后的 HTML 输出

Asciidoctor

Ryan Waldron, Dan Allen

Asciidoctor 是一个原生 Ruby 处理器,用于将 AsciiDoc 源文件和字符串转换为 HTML 5、DocBook 4.5 等格式。

安装

您可以使用 `gem` 命令安装 Asciidoctor RubyGem。

gem install asciidoctor

在 Fedora 上,您可以使用 `yum` 命令通过 RPM 包(待定)进行安装。

yum install rubygem-asciidoctor

现在您已准备好开始使用 Asciidoctor!

优点

Asciidoctor 是:

  • 兼容的

  • 快速的

  • 安全的

  • 稳定的

试试吧!

Python 编写的 AsciiDoc 项目是 AsciiDoc 语法的唯一实现……直到“医生”的到来。

Asciidoctor 实现

Asciidoctor 是第一个用另一种语言(在这种情况下是 Ruby)实现 AsciiDoc 语法的项目。它是一个开源库(MIT 许可),以 RubyGem 的形式发布到 rubygems.org。该项目最近已迁移到 GitHub 上的 Asciidoctor 组织,以维持其快速增长。

虽然 Asciidoctor 旨在完全兼容 AsciiDoc 语法(除了一些例外,已在项目 README 中注明),但它不仅仅是一个克隆。

内置和自定义模板

Asciidoctor 使用一套内置的 ERB 模板来生成与 AsciiDoc 产生的输出在结构上等同的 HTML 5 和 DocBook 4.5 输出。任何这些模板都可以被用 Ruby 生态系统中任何可用的模板语言编写的自定义模板替换。自定义模板渲染由 Tilt 模板抽象库处理,这是一个由另一位 GitHub 用户 Ryan Tomayko 创建的项目。

解析器和对象模型

利用 Ruby 堆栈不仅仅是 Asciidoctor 的一个好处。与 AsciiDoc Python 实现不同,Asciidoctor 以离散的步骤解析和渲染源文档。这使得渲染文档成为可选的,并使 Ruby 程序有机会通过与 Asciidoctor 组装的文档对象模型进行交互来提取、添加或替换文档中的信息。开发人员可以使用 Ruby 编程语言的全部功能来操作文档内容。

性能和安全性

要全面介绍 Asciidoctor,就不能不提它的**速度**。尽管这不是项目最初的目标,但 Asciidoctor 的速度却令人惊叹。它加载、解析和渲染文档的速度比 Python 实现**快至少 25 倍**。这对开发者的生产力来说是个好消息,对需要渲染 AsciiDoc 标记的 GitHub 或任何服务器端应用程序来说也是个好消息。Asciidoctor 还提供了多个级别的安全性,进一步证明了其适合服务器端部署。

超越 Ruby

Asciidoctor 的使用不仅限于 Ruby 社区。得益于 Ruby 到 JVM 的移植版 JRuby,Asciidoctor 也可以在 Java 应用程序中使用(并最终在 Apache Maven 等 Java 构建工具中使用)。Asciidoctor 还附带了一个由 Red Hat 的 Jason Porter 编写的命令行界面 (CLI)。Asciidoctor CLI `asciidoctor` 是 AsciiDoc Python 分发版中的 `asciidoc.py` 脚本的直接替代品。

Asciidoctor 和 AsciiDoc 的未来

AsciiDoc 的未来一片光明。尽管它是一个成熟的、已有 10 年历史的标记语言,但 AsciiDoc 的采用率从未如此强劲。开发人员有很多关于如何改进和扩展 Asciidoctor 的想法,其中一些甚至超出了 AsciiDoc 语法本身。

  • 如果您有兴趣使用 AsciiDoc,请前往 GitHub,并在您的一个存储库或 gist 中创建一个使用 `.asciidoc` 或 `.adoc` 文件扩展名的新文件。

  • 如果您有兴趣为 Asciidoctor 做贡献,进而帮助推动 AsciiDoc 的发展,我们欢迎您的参与和反馈

愉快地编写文档!

本文使用 AsciiDoc 编写,并使用 Asciidoctor 渲染。

1. Asciidoctor 的代码库源于去年 GitHub 开发人员创建的一个原型,用于生成 git man pages,这些页面显示在 git 网站上。

太棒了!AsciiDoc 真是不可思议!我印象深刻!(2012)

作者 Dan Allen -

大家可能听说了,Google+ 正在沉没。可悲的是,我当初发现 AsciiDoc 时发布的那篇帖子也将随之消失……一切都始于那里。我对 AsciiDoc 的兴趣,甚至 Asciidoctor 的起源,都可以追溯到这篇帖子。为了不让这段历史消失,我决定将其保存在 Asciidoctor 博客上。请注意,这篇帖子中的一些引用已经过时。

Google+ 帖子

在花了两天时间将几篇完整的技术教程转换为 AsciiDoc 并深入研究其功能后,我现在可以称得上精通 AsciiDoc 了。

AsciiDoc 是一种轻量级但功能强大的标记语言,它应有尽有

  • 它易于阅读

  • 它内容全面

  • 它可扩展

  • 它能生成精美的输出(HTML、DocBook、PDF、ePub 等)

这才是一门值得用来写书的轻量级标记语言!

如果您有兴趣用它来写书,请参阅 git-scribe:https://github.com/schacon/git-scribe

可以这样理解

如果 Markdown 是个一年级学生,那么 AsciiDoc 就是博士生。

对于基本格式化,Markdown 和 AsciiDoc 的外观非常相似,这使得 AsciiDoc 成为 Markdown 的一个即插即用、无需思考的替代品(在简洁性和平滑迁移方面都是如此)。然而,AsciiDoc 的语法似乎永无止境。事实上,它确实没有尽头,因为它(可以)相当容易地进行扩展(和调整)。

那 Docbook 呢?啊!AsciiDoc 的妙处在于,您仍然可以生成 Docbook,而无需付出任何痛苦,也无需牺牲任何功能。也许 AsciiDoc 应该采纳这个口号

用 Docbook 写东西简直是反人类的。

我可以列出 AsciiDoc 支持的所有功能,但一个展示比任何语言都更能说明问题:http://powerman.name/doc/asciidoc

回到我的实验……

我有机会认真评估和比较了几种重要的轻量级标记语言:reStructuredText(及其补充 Sphinx)、Textile 和 AsciiDoc。毫无疑问,AsciiDoc 是赢家。如果软件中有“万无一失”这样的说法,那 AsciiDoc 就是了。

我首先将一篇完整的技术教程转换为 reStructuredText。花费了大约 3 个小时才艰难地弄懂语法并完成转换,但仍然存在一些遗漏。语法实在古怪(为什么痴迷于反引号和冒号?),而且很难记住。总的来说,让人感觉不舒服。我相当沮丧,准备放弃了。

睡前,一丝好奇心驱使我去尝试 AsciiDoc。在 15 分钟内,我就完成了整个文档的转换。此外,我还获得了 HTML、PDF、纯文本、ePub 和 Docbook 的输出。我甚至开始尝试额外的格式化和组织功能。我感觉像是找到了文档的圣杯。

这是那个实验的结果

文档可以很简单也很有趣。谁能想到呢?

我对 AsciiDoc 的兴奋程度与我对 git 的兴奋程度相当(两者结合简直是天作之合)。还有很多东西有待探索。我强烈鼓励大家去试试。AsciiDoc 甚至在 github(和 gists)上被支持为一种标记格式,非常容易上手。

如果您使用 Fedora,请直接从网站下载最新版本的 AsciiDoc,而不是安装 RPM 包。RPM 包缺少一些分发文件。
更新(2014-08-15)
由于这篇帖子经常被引用以获取有关 AsciiDoc 的信息,我将更新它,指向一个更近期的 AsciiDoc 速查表。请参阅 https://asciidoctor.org.cn/docs/asciidoc-syntax-quick-reference/

帖子活动

评论

39

57

分享

24

参与者

Henry Lee +1,Milan Navrátil +1,Ravishankar Haranath +1,Markus C +1,Chris Drew +1,csgeek 转发,Andrey “Bass” Shcheglov +1,Gavin Engel +1,Марк Сафронов +1 并转发,Liam OBrien +1,Anatoly Yakubov +1,Mhd Shulhan +1,Kartik Singhal +1,Ahmad Khayyat +1,Benjamin Kampmann 转发,Kevin Retzke +1,张文涛 +1 并转发,Shane Weng 转发,Alex Sherlock 转发,Sascha Lüdecke +1,Jonathan Bullock +1,Sten Aksel Heien 转发,Paulo Jerônimo +1,Anthonny Querouil 转发,Dave Campbell 转发,Leif Gruenwoldt +1 并转发,Søren Jones +1,Edmund Haselwanter +1,John Zoidberg +1,Ophir Radnitz +1,Italo Penna +1 并转发,Peti Koch 转发,Daniel Faust +1,cesare cugnasco +1,Tong Sun 转发,Jason Lee +1,Ding-Yi Chen +1,Aditya Raj Bhatt +1,sebastien rey coyrehourcq 转发,Martin Pool +1,Thomas McDermott +1 并转发,Easytouch 转发,Stéphane Gourichon 转发,Günter Zöchbauer +1,Timo Ollech +1,Antoni Silvestre Padrós +1,Dmitry Afanasiev +1 并转发,William Chambers 转发,Mani B +1,Anton Leontiev 转发,Fabricio Godoy +1,Gianluca Scacco 转发,Jeffrey Cardona +1,Brian Leathem +1,Samuel Bancal 转发,Jose Torres +1,Sebastian Peters +1,Ștefan Suciu +1,Roman Frołow +1 并转发,John Jelinek +1,Holger Joest 转发,Agam Brahma +1,Too simple,Sometimes naive +1,Jared Morgan +1,DeWitt Clinton +1,Alexander Zobkov +1


  • 7 / 7