标记语言简析:每个团队都应了解的 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 等工具结合使用,它可以渲染出各种格式的精美文档。红帽和 Fedora 使用 DocBook 来编写指南和其他长篇文档。

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

LaTeX

然后是 LaTeX。

LaTeX 是一种强大的排版语言,尤其适用于数学方程式。一些以学术为基础的项目出于这个原因使用它。然而,LaTeX 有一个非常陡峭的学习曲线。它的美学吸引力也有些不足。

做出你的选择

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

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

文档
专栏


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

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

12 条评论

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

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

回复 作者:zax (未验证)

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

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

“另外,你觉得 LaTeX 在美学上有什么不足?”

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

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

回复 作者:Donnie (未验证)

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

我使用 ckeditor 和一些 mods 来作为通用 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.