使用 AsciiDoc 编写文档

尚无读者喜欢这篇文章。
Typewriter keys

April Killingsworth。由 Rikki Endsley 修改。CC BY-SA 2.0 许可。

我在编写《Learn Linux in a Month of Lunches》(一个月午餐学会 Linux)时发现了 AsciiDoc。AsciiDoc 是一种非常全面的标记语言,用于编写书籍——可以将其视为 Markdown,但具有更多选项,例如侧边栏、注释和表格。 AsciiDoc 让您只需输入文本,使用简单的语法控制格式。

当我刚开始写书时,我使用 LibreOffice 的 Word 样式表。我的出版商 Manning 提供了 OpenOffice 的 .odt 版本,但我无法让样式正常工作。具有讽刺意味的是,我最终使用了 Word .docx 模板,它与 LibreOffice 的兼容性最好。但最大的问题是图像,图像无法正确嵌入。我本应该写作,却花费了大量时间进行格式化。

注释也很难解析。Jim Whitehurst 在撰写他的著作《The Open Organization》(开放式组织)时,实际上让 LibreOffice 打了补丁来处理注释。在与我们的模板搏斗了几个章节之后,我的编辑建议我们切换到 AsciiDoc,我的生活立刻变得轻松起来。

使用 LibreOffice,我必须插入图像、编号、添加标题、设置样式,然后希望一切都能保持在一起,而使用 AsciiDoc,我只需写成这样:

.Mint 的软件管理器外观与 Ubuntu 软件中心类似。

AsciiDoc 会为我处理其他一切,包括在标题中对图像进行编号。以上代码的渲染效果如下:

AsciiDoc 转换为 PDF。

侧边栏或注释就像这样简单:


注释的 AsciiDoc 语法。

它会变成这样:


注释的 AsciiDoc 语法渲染成 PDF 的效果。

AsciiDoc 具有标题和副标题的格式,甚至可以根据它们自动生成目录


AsciiDoc 自动生成目录。

因为 AsciiDoc 是文本格式,您可以使用任何文本编辑器进行编写,但我喜欢预览代码以确保一切看起来正常。Gedit 有一个插件,但使用它需要一些精力,而且我当时赶着截止日期。我决定使用 Atom,这是 GitHub 创建的文本编辑器。Atom 有一个渲染 AsciiDoc 的插件,我在编写几个章节时尝试过,但预览有时很奇怪。注释和侧边栏会扩展到整个文档。此外,我无法直接用它打开 AsciiDoc 格式的文档。相反,我必须先打开 Atom,然后通过 Atom 的打开菜单打开文档。

Atom 还不错,但有点烦人,所以我决定尝试 Brackets,这是 Adobe 的开源文本编辑器。Brackets 渲染 AsciiDoc 的效果更好,虽然打开 AsciiDoc 文件仍然不是很顺畅,但比 Atom 好。我希望 Brackets 具有运行拼写检查功能,而不是在完成后才能运行拼写检查,但它可以预览我需要看到的内容,并为我提供运行字数统计,所以我很满意。

Brackets 文本编辑器。


Brackets 渲染的 AsciiDoc。

Brackets 和 Atom 以 HTML 格式渲染,但 a2x 命令(它是 AsciiDoc 包的一部分)可以轻松地将 .adoc 文件转换为 PDF(尽管当图像文件名中包含句点时,一个错误会导致转换失败)。输出看起来像一个专业排版的书籍章节。

AsciiDoc 对我来说是救星,我很幸运能与使用它的出版商合作。我认为 AsciiDoc 适用于任何需要美观 PDF 或对自助出版感兴趣的人。此外,AsciiDoc 对开放教育资源具有巨大的意义,因为它允许人们编写教科书而无需进行格式化;他们可以轻松地获得 PDF,并且可以将底层的 AsciiDoc 提供给想要修改原文的人。

像 AsciiDoc 这样的标记语言对于像我这样不想处理格式化的人来说非常棒。在我们转向 AsciiDoc 之后,我们能够使用私有 git 存储库来来回提交草稿。AsciiDoc 还具有注释掉文本的功能,这使我们可以在文本中共享注释。AsciiDoc 为我节省了数小时的写书时间,因为它让我专注于写作,而不是样式和格式化。如果您还没有尝试过 AsciiDoc,请试用一下,并在评论中告诉我们您的想法。

最初发布在 MyLinuxRig.com 上。经许可转载。

文档
专栏


本文是 Rikki Endsley 协调的 Doc Dish 专栏的一部分。要为本专栏投稿,请提交您的故事想法联系我们

标签
User profile image.
Steven Ovadia 撰写 LinuxRig.com,该网站设有“The Linux Setup”专栏,采访桌面 Linux 用户。他是一位学术图书馆员,为各种图书馆学期刊撰写关于用户如何在在线环境中与信息交互的文章。他是《Learn Linux in a Month of Lunches》的作者。您可以在 steven.ovadia.org 上查看他的所有出版物。

6 条评论

AsciiDoc 很棒,但是 Asciidoctor(Brackets 和 Atom 中的 Live Previews 也使用了它)的形式存在一个更快、文档更好、更符合标准的 fork 分支。Asciidoc 是 Markdown 的更好、更智能的版本,我认为可以说 Asciidoctor 与 Asciidoc 具有相同的关系。祝您文档编写愉快!

AsciiDoc 是一款很酷的软件。您试过 AsciiDocFX 吗?它是一个 AsciiDoc 的 GUI,非常好用。

我还没见过!我会看看!

几年来,我一直听到关于 asciidoc 和 markup/down 的消息,并且在该领域做了一些涉猎。但是每次我这样做时,在学习了一点 TeX/LaTeX 之后,在我看来这似乎是浪费时间和精力。我从经验中深知 TeX/LaTeX 的学习曲线有多陡峭,但是当我摆弄 asciidoc 或 markup/down 时,也变得很明显,他们正在尝试重新发明轮子。如果您的格式化需求相当简单,那么使用 ascidoc markup/down 也许是有意义的,因为它需要较少的初始学习精力。但是,如果您将来有更复杂的格式化需求,您会发现这些新系统的局限性,并且最终可能需要提出功能请求或进行自己的黑客攻击才能使它们满足您的需求。TeX/LaTeX 可以完成您能想象到的所有格式化技巧,并产生惊人的效果。并且它也有前端(例如,Lyx),就像 markup/down 一样。我仍然坚信,如果我要学习一些格式化语言以便以纯文本格式编写文档,那么我最好投入更多时间和精力来学习 TeX/LaTeX。

选项的美妙之处在于每个人都可以选择适合自己的选项。我进行非常简单的写作,没有公式或格式,因此 Asciidoc 非常完美。但您是对的——对于更复杂的文档,其他语法(如 LaTeX)更有意义。

回复 by JM (未验证)

谢谢 Steven 提供这些信息。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.