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

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

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

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

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

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

“将内容与演示文稿分离,”他们说。像 DocBook 和 AsciiDoc 这样的语言允许作者说,例如:“这是一个 GUI 按钮。” 它最终可能会以粗体渲染,但您不仅仅添加 <em> 并称之为结束。内容与演示文稿分离;例如,像 Asciidoctor 这样的渲染工具使用级联样式表 (CSS) 来控制演示文稿。

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

现在,我还没有赞扬什么?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 元素转换为尾注(脚注更复杂,因为它们需要打印样式表)。

这是供您自己使用,还是您也将其用于协作项目?如果您以这种方式协作,效果如何?

回复 作者 Tim Chase (未验证)

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

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

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

我和你一样。即使我只是为了捕捉正在发生的事情而做的非正式笔记,以便我以后可以进行实际的撰写,如果不是有效的 Markdown,也几乎非常接近。我注意到,即使是我手写的笔记,现在也带有明显的 Markdown 风格。

回复 作者 Jason B

Markdown:小小的标记语言,却能做到。;-D

我已经成为它的一个分支的忠实粉丝;多重 Markdown。额外的语法仍然足够简单,可以随意编写而无需担心它的外观,产生的输出本身看起来也很不错,并且可以通过许多工具轻松调整,然后再作为 HTML、EPUB、PDF 或任何其他格式进行最终输出。非常适合编写那些长文档,而不会让您陷入学习另一种标记语言的困境。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.