标记语言速览:每个团队都应了解的 4 种标记语言

还没有读者喜欢这篇文章。
open source button on keyboard

Opensource.com

当我在我的 Doc Dish 文章中,关于 为什么应该使用渲染语言进行文档编写 的结尾处,我告诉过您,选择语言是另一天的事情。

好吧,另一天终于到来了。

您可以用来格式化和发布文档的语言种类繁多,您对语言的选择将取决于您项目的需求。在本文中,我将介绍几种不同的语言选项,从最简单的到最复杂的。这绝不是一个详尽的列表,所以在评论中为您的最爱(或最讨厌的)语言辩护吧。

Markdown

Markdown 是最简单的可用标记语言之一。在源格式中,它与纯文本非常相似,这使得它在未渲染的情况下也很容易理解。任何熟悉 wiki 语法或 IRC/即时消息约定的人都会发现它很容易使用。像 GitHub 这样的托管服务会在浏览代码仓库时自动渲染 Markdown 文件,这使得 Markdown 非常适合 README 文件和类似内容。

然而,这种简单性意味着缺乏灵活性。区分不同类型的文本(而不加入一堆 HTML)可能会很困难。由于标准没有明确定义,因此还存在各种 Markdown 实现和衍生版本(例如 CommonMark)。如果您正在为您的项目使用 Markdown,您应该确定您希望贡献者使用的实现和工具。

reStructured Text

reStructured Text(RST 或 reST)与 Markdown 类似,因为它的源格式几乎是纯文本。reStructured Text 最初是作为 Python 工具开发的,现在已广泛用于技术文档,尤其是在与 Sphinx 渲染系统结合使用时。

开发人员欣赏该语言的轻量级标记。尽管如此,reStructured Text 仍具有生成美观文档的灵活性。项目托管服务通常会在浏览器中渲染 reStructured Text 文件(再次使其适用于 README)。与 Markdown 不同,reStructured Text 确实有一个 定义的规范

DocBook

接下来,事情变得更加复杂。

DocBook 是一个为技术文档设计的 XML 规范。仅仅提到 XML 就足以让一些人望而却步,但它提供的灵活性可能是一个有力的论据,尤其是对于用户文档而言。

Publican 等工具结合使用,它可以渲染各种格式的精美文档。Red Hat 和 Fedora 将 DocBook 用于指南和其他长篇文档

DocBook 具有用于 GUI 项目和操作、文本命令以及许多其他常见技术概念的元素。使用 Publican,您可以将文档发布到品牌网站。虽然 DocBook 的源代码可能有点刺眼,但该语言在格式化方面提供了强大的功能和灵活性。

LaTeX

然后是 LaTeX。

LaTeX 是一种功能强大的排版语言,特别适用于数学方程式。一些学术项目出于这个原因使用它。但是,LaTeX 的学习曲线非常陡峭。它的美学吸引力也有待提高。

做出选择

那么您将选择这些(或其他)选项中的哪一个呢?

您对这个问题的回答将取决于您的贡献者和潜在贡献者所适应的内容,以及您将要制作的文档类型。一个需要 README 的小型项目会发现 Markdown 最合适。像 Linux 发行版这样产生长篇指南的较大项目可能会发现 DocBook 是正确的选择。无论您选择什么,重要的是保持文档的更新和可用。

Doc
Dish


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

标签
User profile image.
Ben Cotton 是一名受过训练的气象学家,但天气是一个很棒的爱好。Ben 在红帽公司担任 Fedora 项目经理。他是《开源项目项目管理》的作者。在 Twitter (@FunnelFiasco) 或 FunnelFiasco.com 上找到他。

12 条评论

最好的是 asciidoctor (www.asciidoctor.org)。
它实现了“asciidoc”标记语言,并且还支持标准 markdown。它具有非常简洁的语法,它不像 restructured text 那样对空格敏感,但它仍然像 restrucutredtext 一样强大。
使用 asciidoctor。

zax,
我一直在尝试找人为我们写一篇关于 asciidoctor 的文章。我今年早些时候听说了它,并且很乐意将其包含在我们的文档专栏中。如果您认识任何可能想为我们写关于它的文章的人,请将他们介绍给我们 (open@opensource.com)

回复 作者:zax (未验证)

我正在使用 Markdown(实际上是 GitHub 风格的 Markdown)来处理我所做的任何需要我输入超过 15 个单词的事情:写电子邮件、写文档、写文章、提交问题、维护待办事项列表...

不喜欢 groff/mom 吗?另外,您觉得 LaTeX 在美学方面有什么不足?

“另外,您觉得 LaTeX 在美学方面有什么不足?”

我也正要问同样的问题。许多书籍、期刊等都是使用 LaTeX 制作的,我以前从未见过这种批评。

就我个人而言,我是 lyx 的粉丝,它是 LaTeX 的 GUI 前端。我用它为我的学生制作了一本教科书。

回复 作者:Donnie (未验证)

令人惊讶的是,在这个互联网时代,HTML 没有列入列表。

我使用 ckeditor 和一些 mods 将文件归档到 DB 中,作为通用 Web/文档控制系统的一部分。
HTML wysiwyg 编辑并立即准备好用于 Web。如果您需要公式,它有 latex 插件。
适合任何屏幕,立即访问,几乎不需要培训。

Asciidoctor 很棒。它用 Ruby 编写(前身 asciidoc 用 python 编写),并且有一个版本可以编译为 JavaScript,因此它在浏览器中渲染效果很好。

我真的将 latex 和 docbook 视为中间格式。Asciidoctor 转换为 docbook,restructured text 转换为 latex。用其他东西编写,然后在 docbook 或 latex 中进行调整。多年前,我确实经历了直接用 latex 和 docbook 编写的阶段。

对我来说,restructured text 和 sphinx FTW。我得到了很好的文本标记,并且我对 python 作为底层代码更自在。我的文档也比 markdown 可以处理的更复杂。

我必须看看 asciidoc 以满足我个人的兴趣。

我不得不说,我很惊讶地看到 markdown 的局限性被引用,但没有提及 multimarkdown 作为替代方案。它似乎是 (a) 最受关注和 (b) 在消除 markdown 的局限性方面取得了很大进展,同时仍然保留了其非常简单的标记风格的变体。

markdown(以及,通过扩展,multimarkdown)的优势之一是能够直接编写,而无需担心最终输出的外观。任何使用 SGML、HTML 或 LaTex 等标记语言编写过任何长度文档的人都知道我所指的痛苦。每次作者必须停下来思考格式时,都会中断创造性的流程。每次发生这种情况时回到手头的主题都需要时间。中断越频繁,格式化语言本身就越复杂,整个写作过程就越慢。

毕竟,这就是 markdown 和 reStructured Text 被发明的原因。作者需要一些简单的东西来摆脱困境。找到既能很好地完成这项工作,又不会牺牲太多功能的东西,将永远是一个挑战。我认为 multimarkdown 至少和这里讨论过的任何其他东西一样好。

3/4

我没有只使用 LaTeX。

我们使用 Gitbook 作为 markdown 后处理器。它提供了一些基础设施来获取索引和章节。
我们还有一些脚本可以从源代码中收集文档,并生成 swagger.io 交互式文档,以及执行的示例。

有趣的文章,感谢分享!!

© . All rights reserved.