学习 Markdown:软件开发人员的写作工具
已发表: 2022-03-11如果您是一名软件工程师,您可能已经花费了大量时间来优化您的环境以提高您的工作效率。 你有你最喜欢的 IDE。 你有你最喜欢的调试器。 你有你最喜欢的性能监控工具。 但是您编写文档、手册和报告的工具呢? 毕竟,写作确实会占用你大量的时间,不是吗? 确实,是时候认真对待你的写作工具了。
请记住,您是技术人员,因此所见即所得的编辑器可能是您的最佳选择,也可能不是。 您不一定想要(甚至不喜欢!)导航菜单、工具栏和功能区来格式化您的文本。
那么,如果相反,您可以轻松地将所有格式样式作为简单的内联语法添加到文本中以生成完全格式化的文本呢?
嗯,事实上,你可以。 这就是 Markdown,这就是本教程的全部内容。
当更多是更少...
编写文字处理软件是为了满足极其广泛的用户和用例,因此需要提供各种功能。 但很明显,只有一小部分功能可能与每个用户相关。 对于大多数只想编写文档(而不需要设计营销手册或海报)的用户来说,许多可用选项中的一小部分是相关的。
事实上,微软几年前就清楚地意识到了这一点,当时他们将 Microsoft Word 的用户界面重新设计为不同的功能组,他们称之为“功能区”。 然而有趣的是,大多数用户会告诉您,他们发现新界面比其前身更令人困惑和难以导航。
事实上,在易用性和生产力方面,有时更多可能会更少。
……当少即是多
面对现实,你是一名软件工程师,而不是平面设计师。 您只想编写该手册、技术文档或报告,然后完成它。 您会非常高兴并满足于一些基本的格式化功能,如标题、项目符号或编号列表以及代码块。 而且,哦,是的,一些字体格式(粗体、斜体等)也会有所帮助。 就是这样。 (伙计,如果你甚至可以在 vi 中做到这一点,那真是太棒了!)
输入降价。
什么是降价?
John Gruber(来自技术大师和互联网活动家 Aaron Swartz 的大量贡献)于 2004 年创建了 Markdown 语言,其目标是让人们“使用易于阅读、易于编写的纯文本格式进行写作,并且可以选择将其转换为结构上有效的 XHTML(或 HTML)”。
Markdown 被设计成可以按原样阅读,看起来不像是用标签或格式说明标记的(不像用 RTF 或 HTML 等标记语言格式化的文本,其原始格式既难以创作又难以阅读)。
Markdown 允许您使用易于阅读、易于编写的纯文本格式进行编写,然后可以将其转换为结构上有效的 HTML。 所以,完全准确地说,Markdown 真的是两件事:
- 纯文本格式语法
- 一种将纯文本格式转换为 HTML 的软件工具(其第一个版本是用 Perl 编写的)。
Markdown 包含了一些简单、相当直观且易于使用的语法约定。 特别是对于作为一名软件工程师的你——他们不会因为需要学习和使用这些基本的语法约定而感到厌烦——Markdown 确实可以成为你想写的东西和写出来的东西之间阻力最小的路径。
学习 Markdown:入门
Markdown 很容易学习。 超级容易。 您可以在五分钟内学习基础知识,它会很快成为第二天性。 而且——就像 CSS 和 CSS 预处理器之间的关系一样——你可以尽可能少地使用或尽可能多地使用。
如果您习惯于任何类型的纯文本书写约定,那么您可能已经熟悉一些降价约定,例如在句子开头使用数字或破折号来创建列表,在单词周围使用星号表示强调等等在。 因此,例如,如果您想以斜体显示某些内容,只需将其包裹在*this*
之类的星号中(而不是像<span>this</span>
之类的更笨重的 HTML 语法)。
同样,您可以通过简单地在行中添加“#”前缀来指定 H1 标题(例如, # Section Heading
,而不是<h1>Section Heading</h1>
)。
学习 Markdown 的另一个重要用途,尤其是对我们软件工程师而言,就是将它用于源代码存储库的文档。 大多数 repos 包含一个README.md
文件( .md
是 Markdown 文件的标准扩展名)。 例如,Github 有自己的“Github 风格的 Markdown”,它专门为开发文档添加了额外的功能。 与必须用 HTML 编写此文档相比,这无疑可以节省时间。
作为一个简单的示例,假设您想在文档中包含以下代码段:
<h2 style=color:#3863a0;font-size:1.5em;font-weight:600;margin-top:2em;margin-bottom:1em;line-height:1.3em;>启动插件</h2>
使用 jQuery 在容器上启动
pluginName
,如下所示:
$(function() { $('#container').pluginName(); });
使用我们容器的 ID,我们可以使用 jQuery 方法.pluginName()
来启动pluginName
。
这是在 HTML 与 Markdown 中如何完成此操作的比较:
HTML | 降价 |
<h1>启动插件</h1> | # 启动插件 |
<p>使用 jQuery 在您的容器上启动 <code>pluginName</code>,如下所示:</p> | 使用 jQuery 在您的容器上启动 `pluginName`,如下所示: |
<代码> $(function() { $('#container').pluginName(); }); </代码> | `$(function() { $('#container').pluginName(); });` |
<p><em>使用我们容器的 ID,我们可以使用 jQuery 方法 <code>.pluginName()</code></em></p> 启动 <code>pluginName</code> | *使用我们容器的 ID,我们可以使用 jQuery 方法 `.pluginName()` 来启动 `pluginName`。* |
为了进一步帮助入门,有许多在线 Markdown 教程可以帮助您快速入门,包括 John Gruber(Markdown 的创建者)的 Markdown 概述以及在线 Markdown 教程。
Markdown 解析器和工具
使用 Markdown 编写文章后,您将需要一个应用程序来将语法解析为 HTML。 有一些很棒的免费的,包括:
- StackEdit - 基于浏览器的 Markdown 编辑器,具有一些与 Google Drive 和 Dropbox 等流行服务同步的选项
- Online Kramdown Editor - 另一个基于浏览器的 Markdown 编辑器,界面极其简单
- Mou - 我遇到过的最好的基于 Mac 的 Markdown 编写器,是开发人员的极客选择; 大量功能和免费(在测试版中) [这是我用来写这篇文章的内容]
- MarkdownPad - 适用于 Windows 的出色 Markdown 编辑器
- Texts - 一个不错的跨平台(Mac 和 Windows)编辑器; 导出为多种格式,例如 PDF、.doc 和 ePub
一些主要平台已经在其编辑器中采用(或至少允许)Markdown 使用,供那些希望使用它的人使用。 对于 WordPress、Evernote 和 Google Docs 等其他工具,本地支持(在撰写本文时)尚未推出,但第三方已经引入了自定义解决方案。 这些包括:
- 流行的新博客平台 Ghost 为了简化在线写作,使用 Markdown 作为其内容编辑器。
- 对于 WordPress,Jetpack 插件现在正式支持 Markdown,如果您使用该插件,您可以在设置 > 讨论下启用它。 或者您可以使用像 WP-Markdown 这样的插件,它将您的 post markdown 内容转换为 HTML,并在您需要编辑它时返回 Markdown。
- 对于 Evernote,一些 Markdown 应用程序,如在线编辑器 Markable 或 Mac 编辑器 Byword 允许直接导出和发布到笔记。 或者,如果您更喜欢直接使用 Evernote 网络应用程序,您可以使用名为 Markdown Here 的浏览器扩展程序,只需单击工具栏按钮,即可将写入 Markdown 的选定笔记转换为格式化文本。
- Google Docs 本身还不支持 Markdown,但一些编辑器(例如 StackEdit)将直接与 Drive 导出/同步。
缺点
当然,非常简单也有局限性。 正如我已经解释过的,Markdown 不是为需要高级格式化功能的复杂文字处理任务而编写的。 如果这就是您所需要的,那么 Markdown 不是正确的工具。
但是对于需要编写用户手册或技术文档或技术报告的开发人员,Markdown 在简单性和您需要的功能之间提供了近乎完美的平衡。
也许最大的缺点——尤其是对于我们这些热衷于变更控制的工程师来说——是无法在 Markdown 中协同工作并跟踪变更(不过,一个值得注意的例外是 Google Docs 的 StackEdit 插件)。 当然,只要付出最少的努力,就可以通过 git 存储库简单地协作处理 Markdown 文档,从而获得通常需要的所有变更跟踪和协作。
结论
那么所有人都在学习 Markdown 吗? 当然不是。 从来没有一种工具是。
但如果你是一名软件工程师,它很可能正是你一直在寻找的写作工具。 因此,如果您还没有尝试过,那么您真的应该试一试。