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

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 Guide 的首席维护者宣布他打算从 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 元素转换为尾注(脚注更复杂,因为它们需要打印样式表)。

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

回复 作者 Tim Chase (未验证)

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

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

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

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

回复 作者 Jason B

Markdown:可以做到的小型标记语言。;-D

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

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