我为什么喜欢这些标记语言

3 位读者喜欢这篇文章。
Typewriter keys

原始照片由 Bob Doran 通过 Flickr 提供。由 Rikki Endsley 修改。 CC BY-SA 2.0。

大约在去年的这个时候,我为本专栏撰写了一篇关于各种标记语言的简要介绍。最近,语言选择的话题多次出现,所以我认为现在可能是时候以更公开的偏见重新审视这个主题了。我在这里解释为什么我更喜欢我使用的语言,而不是为您开任何处方。毕竟,我不是医生。

一位同事询问了我对一篇比较 reStructuredText 和 Markdown 以进行技术文档的帖子的看法。我公司的文档是用 reStructuredText 编写的,并使用 Sphinx 渲染,但我时不时地发出声音,想转向类似 DocBook XML 的东西。对我来说,reStructuredText 位于反金发姑娘区,它不像 Markdown 那样超级简单,但也不像 DocBook XML 那样丰富。它的亮点在于使用 Sphinx 为 Python 自动生成模块文档

最近,Copyleft 指南的首席维护者宣布,他打算从 LaTeX 切换到 CommonMark 或 AsciiDoc。由于从未使用过 AsciiDoc,我对自己如此强烈地支持它感到有点惊讶,但随着我进行了后续对话,我意识到它非常适合类似书籍的文档。

“将内容与表现形式分离,”他们说。像 DocBook 和 AsciiDoc 这样的语言允许作者说,例如:“这是一个 GUI 按钮。” 它最终可能会以粗体呈现,但您不仅仅添加 <em> 就完事了。内容与表现形式分离;例如,像 Asciidoctor 这样的渲染工具使用层叠样式表 (CSS) 来控制表现形式。

我在类似书籍的文档中最喜欢做的事情是包含标注。警告、提示等对于您的读者来说是很重要的功能。在大多数情况下,读者最终会略读本书的某些部分,要么是因为他们正在寻找特定部分,要么是因为您的散文太无聊,他们失去了兴趣。标出特别重要的部分有助于确保读者获得您真正、真正希望他们知道的信息。此外,它们为文本墙添加了很好的分隔。公平地说,reStructuredText 对这些有一些支持,但我一直无法使它们像我希望的那样漂亮或在源代码中那样明显。

现在我还没有赞美什么?Markdown。可怜的 Markdown。别误会,我喜欢 Markdown。这篇文章就是以 Markdown 格式提交给编辑的。我在学校用 Markdown 记笔记。它非常容易随时编写,并且易于以源格式阅读。对于简短的独立文档,Markdown 是最好的。

但是编写 Markdown 的容易性与 Markdown 的最终(缺乏)功能相矛盾。除非您嵌入大量 HTML(那么您最好不要使用 Markdown),否则您将无法获得在长篇材料中变得更重要的许多语义丰富性。为了一切都选择 Markdown 是很诱人的,因为它使贡献的门槛非常低,但是当选择让开发人员或用户(在本例中为作者和读者)的生活更轻松时,成功的项目往往会偏爱用户。

所以就是这样。文档语言不是万能的,因此为正在编写的文档选择合适的语言至关重要。

在评论中告诉我你为什么喜欢你选择的语言。

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

12 条评论

我不喜欢 Markdown,因为它有歧义。任何难以解析的标记都难以理解。

我很好奇您认为与其他标记语言相比,Markdown 语法有哪些歧义之处。仅仅是因为 `**` 不如 `<b>` 表达力强吗?

回复 作者:Shawn H Corey (未验证)

我必须看看这里的不同建议。大约一年前,我将工作和其他所有笔记都切换到了 Markdown。然后我使用 pandoc 在项目或年底将其转换为 PDF。对于更长的内容,我使用 LaTeX。当我将工作中的所有笔记(包括图片)从 OneNote 移动到 Markdown 时,我从 800+ MB 减少到了不到 800 KB。

当我在研究生院时,我所有的笔记都是用 Markdown 写的。在每个单元结束时,我会将笔记渲染为 HTML,打印出来(是的,就像“死树”一样)并用它来学习。除了我的论文数据外,我整个研究生院的生活都装进了几十兆字节。

回复 作者:jimmysjolund

我的看法完全相同:“文档语言不是万能的,因此为正在编写的文档选择合适的语言至关重要。” 标记语言就像任何工具一样。您可以将一种语言硬塞到一项不太适合它的任务中,但这很像试图用螺丝刀敲钉子。您可能可以做到这一点,但并非没有大量的努力和咒骂。结果也可能很难看。

由于在 Word Perfect 的“显示代码”功能上磨练了我的文档编辑技巧,我发现直接使用语义 HTML 往往最适合我。我使用文本编辑器用 HTML 编写了所有的大学论文,现在仍然用原始 HTML 完成所有文档。优点包括向后兼容性(我仍然可以毫无问题地查看/打印我 90 年代后期的论文)、无需任何工具将 *转换* 为 HTML、相当简单的语义以及用于列表、侧边栏、标题、表格等的广泛内置标记。每种其他标记语言(好吧,也许 DocBook 除外)都会让我在想要做一些超出基本知识的事情时跑到文档中检查语法。

我遇到的唯一棘手的部分是做脚注/尾注,但我已经拼凑了一个小的 JavaScript,它可以将内联脚注 span 元素转换为尾注(脚注更复杂,因为它们需要打印样式表)。

我觉得 markdown 很棒,直到您开始想要覆盖布局。我认为在使用 markdown 时有一个不成文的协议:您承诺不考虑最终的格式和布局。如果您背叛了该协议,那么您将承担使用 markdown 的后果。

这或多或少是我对大多数预制解决方案的看法;为了方便起见,您牺牲了灵活性。这不是一件坏事,只是在采用之前需要注意的事情。

我认为我写下的每一个想法,只要涉及超过三行文字,都不可避免地会经历一个用 Markdown 编写的时期,或者至少,我会给它一个 # 标题和一些 * 项目符号。我还倾向于在我写的东西中添加 *各种* 形式的 _强调_,无论它是否最终被渲染成任何东西。如果它足够长,以至于我认为它正在变成不仅仅是自我笔记或电子邮件的东西,并且变成我可能会发布的东西,我几乎总是最终在它完成一半之前就转换为 HTML。不同的人以不同的方式经历他们的创作过程(这可能与拖延症不同);对于我发布的东西,我的方式总是涉及在文本完全写完之前就摆弄渲染输出。

我同意你的看法。即使我为了记录正在发生的事情而做的非正式笔记,以便我以后可以进行实际的撰写,即使不是有效的 Markdown,也已经非常接近了。我注意到,即使是我的手写笔记,这些天也明显带有 Markdown 的风格。

回复 作者:Jason B

Markdown:小小的标记语言,潜力无限。 ;-D

我已经成为它的一个分支的忠实粉丝;multi-markdown。额外的语法仍然足够简单,可以直接编写,而无需担心它的外观,产生的输出本身看起来就相当不错,并且可以在最终输出为 HTML、EPUB、PDF 或任何其他格式之前通过任意数量的工具轻松调整。非常适合编写那些长文档,而不会让您陷入学习另一种标记语言的困境。

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