我们很自豪地宣布 Asciidoctor 0.1.2 的发布!

Asciidoctor 是一个开源文本处理器和出版工具链,用于将 AsciiDoc 标记转换为 HTML 5、DocBook 4.5 和其他格式。

这个发布周期的重点是:

我们收到的宝贵反馈帮助Asciidoctor达到了与AsciiDoc语法99%的兼容性。这些改进也使Asciidoctor的速度提升了28%,现在比AsciiDoc快了30倍以上。

主要改进

默认样式表

Asciidoctor现在附带了一个默认样式表!这个样式表使文件在开箱即用时具有独特、现代和优雅的外观和感觉。要了解如何使用它,请阅读如何渲染文档?的样式表部分。访问http://themes.asciidoctor.org可以在https://github.com/asciidoctor/asciidoctor-stylesheet-factory[Asciidoctor样式表工厂]使用http://themes.asciidoctor.org/preview[预览]默认样式表和其他主题。解决了问题https://github.com/asciidoctor/asciidoctor/issues/76[#76]和https://github.com/asciidoctor/asciidoctor/issues/165[#165]。

档案信息文件

补充文件头文件(即docinfo文件)现在在启用时包含在渲染输出中。这些文件用于将自定义内容包含到HTML或DocBook输出的头部。解决了问题 #116#193

水平偏移

现在支持 leveloffset 属性。这个属性允许将多个独立文档组合为一个主文档。解决了问题 #212

部分包含

现在可以使用include宏按行号、行范围或标记区域选取部分文件内容进行包含。这一对include宏的增强功能是Asciidoctor所独有的。 解决了问题https://github.com/asciidoctor/asciidoctor/issues/226[#226]。

内嵌模式下的脚注

脚注现在会在嵌入模式下渲染在输出的底部(当标题和页脚被禁用时),例如在GitHub上或由Awestruct生成的页面中。解决了问题https://github.com/asciidoctor/asciidoctor/issues/206[#206]。

目录宏

已经为toc宏添加了支持,这使您可以将toc放置在文档中的任何位置。这项功能使得在嵌入模式下包含文档中的toc成为可能,例如在GitHub上或由Awestruct生成的页面中。解决了https://github.com/asciidoctor/asciidoctor/issues/269[#269]和https://github.com/asciidoctor/asciidoctor/issues/221[#221]问题。

音频和视频宏

已经添加了宏来输出 HTML 5 音频和视频标签。这些宏与块级图像宏并行。解决了问题 #155

安全模式和嵌入式属性

属性 safe-mode-levelsafe-mode-namesafe-mode-%name% 现在被赋值以匹配激活的安全模式。属性 embedded 被赋值以指示文档是使用嵌入式文档模板渲染的。解决问题 #244

多位作者

您现在可以在文档的页眉中指定多个作者,用分号分隔。在DocBook后端中,作者在文档信息部分的+authorgroup+元素中列出。这个功能是Asciidoctor独有的。 解决了问题 #223

电子邮件宏

内联电子邮件地址和内联mailto宏现在已被识别。解决了问题 #213

安全路径

由于依赖于Ruby核心库,路径解析逻辑过于脆弱。代码已经被完全重写,以便路径被正确地规范化和保护,并且有大量的测试来支持它。

自定义块替换

替换组现在可以通过使用 subs 块属性来自定义应用于块内容。解决了问题 #220

伪装块和段落

开放区块和段落现在可以伪装成任意风格的区块。伪装也适用于其他适当的区块。这是Asciidoctor最薄弱的领域之一,现在已经完全符合要求(甚至有些额外的功能)。解决问题 #187

Note
为了实现对伪装块、段落和自定义块替换的全面支持,必须对主要的块解析代码进行重构。这次重构不仅清理了代码,而且为实现块过滤器和其他扩展奠定了必要的基础。

一些对Asciidoctor的改进解决了AsciiDoc固有的问题。幸运的是,AsciiDoc足够可配置,这些问题可以“移植”到AsciiDoc中,而不改变核心。我们现在维护并发布了一个AsciiDoc配置文件,https://github.com/asciidoctor/asciidoctor/blob/master/compat/asciidoc.conf[asciidoc.conf],使AsciiDoc符合Asciidoctor的行为和增强功能。解决了问题https://github.com/asciidoctor/asciidoctor/issues/257[#257]。

在此版本中实施的全部新功能、增强和补丁列表可以通过在问题跟踪器中过滤 0.1.2 里程碑 来查看。

新网站和文档

你就在看它!

在0.1.2版本发布周期中,我们为Asciidoctor创建了一个适当的网站,并专注于开始编写用户文档。当然,网站和文档都是用AsciiDoc编写的。

Sarah White 开展了一个主动性项目,她正在整理 AsciiDoc 用户指南和手册页中的信息,并将其转换成易于消费的内容,以便用户能够快速开始使用 AsciiDoc 和 Asciidoctor 工具链。

我写了[AsciiDoc简介]、[AsciiDoc写作指南]和[AsciiDoc语法快速参考],揭示了AsciiDoc语法的优雅,并为作家们提供了他们需要的信息,使他们能够高效和熟练地使用AsciiDoc。我在NFJS杂志4月刊上发表的名为《写作(Ascii)文档的禅意》,总结了这些信息,该杂志也是由用AsciiDoc写成的文章制作的。

请在未来的新闻文章中查找有关网站和文档的更多详细信息。

谢谢!

自从上次发布以来,参与Asciidoctor项目的人数,尤其是在集成方面,已经 大幅度 增加。在这次发布之前,Asciidoctor 0.1.1已经突破了http://rubygems.org/gems/asciidoctor[10,000次下载]的标记。我们期待0.1.2能打破下一个10,000。

我们非常感激每一个参与者,尤其是那些做出贡献和传播信息的人:) 我们特别感谢以下人员的贡献和反馈:

我们一起让文档编写变得简单、有趣和有益!