入门指南

Markdown 的概述、原理以及使用场景。

什么是 Markdown?

Markdown 是一种轻量级标记语言,可用于将格式元素添加到纯文本文档。Markdown由 John Gruber 于 2004 年创建,现在是世界上最受欢迎的标记语言之一。

使用 Markdown 与使用 所见即所得 编辑器不同。在 Microsoft Word 等应用程序中,你单击按钮来设置单词和短语的格式,并且更改会立即可见。Markdown 不是这样的。当你创建 Markdown 格式的文件时,你将 Markdown 语法添加到文本中以指示哪些单词和短语应该看起来不同。

例如,要表示一个标题,你可以在它前面添加一个数字符号 (如:# 一级标题). 或者,要使短语加粗,你可以在其前后添加两个星号 (如:**加粗文字**)。可能需要一段时间才能习惯在文本中看到 Markdown 语法,特别是如果你习惯于所见即所得的应用程序。下面的屏幕截图展示了 Visual Studio Code 文本编辑器中显示的 Markdown 文件的样子。

Visual Studio Code 文本编辑器显示 Markdown 文件

你可以使用文本编辑器应用程序将 Markdown 格式元素添加到纯文本文件。或者,你可以使用适用于 macOS、Windows、Linux、iOS 和 Android 操作系统的众多 Markdown 应用程序之一。还有一些基于 Web 的应用程序专门为在 Markdown 中编写而设计。

根据你使用的应用程序,你可能无法实时预览格式化的文档。但没关系,根据 John Gruber 的说法 , Markdown 语法被设计为可读且不显眼,因此即使没有呈现 Markdown 文件中的文本也可以读取。

Markdown 格式化语法的首要设计目标是使其尽可能易读。这个想法是,Markdown 格式的文档应该可以按原样以纯文本形式发布,而不会看起来像是用标签或格式说明进行了标记。

为什么使用 Markdown?

你可能想知道为什么人们使用 Markdown 而不是所见即所得的编辑器。当你可以在界面中按下按钮来格式化文本时,为什么还要使用 Markdown 编写?事实证明,人们使用 Markdown 而不是所见即所得编辑器有几个不同的原因。

  • Markdown 可以用于一切。人们使用它来创建 网站文件笔记, 图书演示文稿电子邮件技术文档.

  • Markdown 是可移植的。几乎可以使用任何应用程序打开包含 Markdown 格式文本的文件。如果你决定不喜欢你当前使用的 Markdown 应用程序,你可以将你的 Markdown 文件导入另一个 Markdown 应用程序。这与将你的内容锁定为专有文件格式的 Microsoft Word 等文字处理应用程序形成鲜明对比。

  • Markdown 是平台无关的。你可以在运行任何操作系统的任何设备上创建 Markdown 格式的文本。

  • Markdown 是未来的证明。即使你使用的应用程序在将来某个时候停止工作,你仍然可以使用文本编辑应用程序阅读 Markdown 格式的文本。当涉及到需要无限期保存的书籍、大学论文和其他里程碑文件时,这是一个重要的考虑因素。

  • Markdown 无处不在。 Reddit 和 GitHub 等网站支持 Markdown, 许多桌面和基于 Web 的应用程序都支持它。

入门

开始入门 Markdown 的最佳方法是使用它。借助各种免费工具,这比以往任何时候都容易。

你甚至不需要下载任何东西。有几个在线 Markdown 编辑器可以用来尝试用 Markdown 进行写作。 Dillinger 是最好的在线 Markdown 编辑器之一。只需打开站点并开始在左窗格中输入,渲染文档的预览出现在右窗格中。

Dillinger Markdown 编辑器

阅读本入门指南时,你可能希望保持 Dillinger 网站保持打开状态。这样你就可以在学习时尝试语法。熟悉 Markdown 后,你可能希望使用可以安装在台式计算机或移动设备上的 Markdown 应用程序。

它是如何工作的?

Dillinger 使使用 Markdown 编写变得容易,因为它隐藏了幕后发生的事情,但值得探索该过程的总体运作方式。

当你在 Markdown 中编写时,文本存储在具有 .md.markdown 扩展名的纯文本文件中。但是然后呢?你的 Markdown 格式文件如何转换为 HTML 或可打印的文档?

简短的回答是你需要一个能够处理 Markdown 文件的 Markdown 应用程序。。有很多可用的应用程序——从简单的脚本到看起来像 Microsoft Word 的桌面应用程序,应有尽有。尽管它们的视觉差异,所有的应用程序都做同样的事情。与 Dillinger 一样,它们都将 Markdown 格式的文本转换为 HTML,以便可以在 Web 浏览器中显示。

Markdown 应用程序使用称为 Markdown 处理器 (通常也称为“解析器”或“实现”)的东西来获取 Markdown 格式的文本并将其输出为 HTML 格式。此时,你的文档可以在 Web 浏览器中查看或与样式表结合并打印。你可以在下面看到此过程的可视化表示。

注意: Markdown 应用程序和处理器是两个独立的组件。为简洁起见,我在下图中将它们组合成一个元素(“Markdown 应用程序”)。

Markdown 处理过程

总而言之,这是一个有四个步骤的过程:

  1. 使用文本编辑器或专用 Markdown 应用程序创建 Markdown 文件。该文件应该有一个 .md.markdown 扩展名。
  2. 在 Markdown 应用程序中打开 Markdown 文件。
  3. 使用 Markdown 应用程序将 Markdown 文件转换为 HTML 文档。
  4. 在 Web 浏览器中查看 HTML 文件或使用 Markdown 应用程序将其转换为另一种文件格式,例如 PDF。

从你的角度来看,该过程会因你使用的应用程序而有所不同。 例如, Dillinger 基本上将步骤 1-3 组合成一个单一的无缝界面——你所要做的就是在左窗格中输入,然后渲染的输出会神奇地出现在右窗格中。但是,如果你使用其他工具,例如带有静态网站生成器的文本编辑器,你会发现该过程更加明显。

Markdown 有什么用?

Markdown 是一种快速简便的记笔记、为网站创建内容和生成可打印文档的方法。

学习 Markdown 语法并不需要很长时间,一旦你知道如何使用它,你几乎可以在任何地方使用 Markdown 进行编写。大多数人使用 Markdown 为网络创建内容,但 Markdown 非常适合格式化从电子邮件到购物清单的所有内容。

以下是你可以使用 Markdown 执行哪些操作的一些示例。

网站

Markdown 是为 Web 设计的,因此有很多专门用于创建网站内容的应用程序也就不足为奇了。

如果你正在寻找使用 Markdown 文件创建网站的最简单方法,请查看 blot.im 。注册 Blot 后,它会在你的计算机上创建一个 Dropbox 文件夹。只需将你的 Markdown 文件拖放到文件夹中,然后——噗!- 它们在你的网站上。这再简单不过了。

如果你熟悉 HTML、CSS 和版本控制,请查看 Jekyll ,这是一个流行的静态站点生成器,它可以获取 Markdown 文件并构建 HTML 网站。这种方法的一个优点是 GitHub Pages 为 Jekyll 生成的网站提供免费托管。如果 Jekyll 不是你的最爱,还有 众多其他可用的静态站点生成器可供选择。

如果你想使用内容管理系统 (CMS) 为你的网站提供支持,请查看 Ghost 。这是一个免费的开源博客平台,带有一个不错的 Markdown 编辑器。如果你是 WordPress 用户,你会发现 WordPress.com 上托管的网站支持 Markdown 。自建的 WordPress 站点可以使用 Jetpack 插件

文件

Markdown 没有像 Microsoft Word 这样的文字处理器的所有花里胡哨,但它足以创建诸如作业和信件之类的基本文档。你可以使用 Markdown 文档创作应用程序来创建 Markdown 格式的文档并将其导出为 PDF 或 HTML 文件格式。PDF 部分是关键,因为一旦你有了 PDF 文档,你就可以用它做任何事情——打印它、用电子邮件发送它,或者将它上传到网站。

以下是我推荐的一些 Markdown 文档创作应用程序:

提示: iA Writer 提供了用于预览、打印和导出 Markdown 格式文档的模板。例如,“Academic – MLA Style”模板缩进段落并添加双句间距。

笔记

在几乎所有方面,Markdown 都是记笔记的理想语法。遗憾的是, EvernoteOneNote,这两个最流行的笔记应用程序目前不支持 Markdown。好消息是其他几个笔记应用程序确实支持 Markdown:

  • Obsidian 是一款流行的 Markdown 笔记应用程序,具有许多功能。
  • Simplenote 是一个免费的准系统笔记应用程序,适用于每个平台。
  • Notable 是一款可在各种平台上运行的笔记应用程序。
  • 熊掌记 是适用于 Mac 和 iOS 设备的类似 Evernote 的应用程序。默认情况下它并不专门使用 Markdown,但你可以启用 Markdown 兼容模式。
  • Joplin 是一款尊重你隐私的笔记应用程序。它适用于每个平台。
  • Boostnote 将自己标榜为“为程序员设计的开源笔记应用程序”。

如果你深度依赖 Evernote,请查看 Marxico,一个基于订阅的 Evernote Markdown 编辑器,或者在 Evernote 网站上使用 Markdown Here

图书

想要自行出版小说?试试 Leanpub, 这项服务可以将你的 Markdown 格式文件转换成电子书。Leanpub 以 PDF、EPUB 和 MOBI 文件格式输出你的图书。如果你想创建图书的平装本,可以将 PDF 文件上传到其他服务,例如 Kindle Direct Publishing。要了解有关使用 Markdown 编写和自行出版书籍的更多信息,请阅读 这篇博客文章

演示文稿

信不信由你,你可以从 Markdown 格式的文件生成演示文稿。在 Markdown 中创建演示文稿需要一点时间来适应,但一旦掌握了它,它就会比使用 PowerPoint 或 Keynote 等应用程序更快、更容易。Remark (GitHub 项目) 是流行的基于浏览器的 Markdown 幻灯片工具。 Cleaver (GitHub 项目) 和 Marp (GitHub 项目) 也是如此。如果你使用 Mac 并且更喜欢使用应用程序,请查看 DecksetHyperdeck

电子邮件

如果你发送大量电子邮件并且厌倦了大多数电子邮件提供商网站上提供的格式控制,你会很高兴地了解到有一种使用 Markdown 编写电子邮件的简单方法。 Markdown Here 是一个免费的开源浏览器扩展,可将 Markdown 格式的文本转换为可以发送的 HTML。

协作

协作和团队消息传递应用程序是在工作和家庭中与同事和朋友交流的一种流行方式。这些应用程序没有利用 Markdown 的所有功能,但它们提供的功能相当有用。例如,在不使用所见即所得界面的情况下将文本加粗和斜体的功能非常方便。 SlackDiscordWiki.jsMattermost 都是很好的协作应用程序。

文档

Markdown 非常适合技术文档。像 GitHub 这样的公司越来越多地转向 Markdown 来获取他们的文档——查看他们的博客文章,了解他们如何将 Markdown 格式的文档迁移到 Jekyll 。如果你为产品或服务编写文档,请查看这些方便的工具:

  • Read the Docs 可以从你的开源 Markdown 文件生成文档网站。只需将你的 GitHub 存储库连接到他们的服务并推送 - 阅读文档即可完成其余工作。他们还为商业实体提供服务
  • MkDocs 是一个快速简单的静态站点生成器,用于构建项目文档。文档源文件是用 Markdown 编写的,并使用单个 YAML 配置文件进行配置。MkDocs 有几个 内置主题,包括用于 MkDocs 的 Read the Docs 文档主题的端口。最新的主题之一是 MkDocs Material
  • Docusaurus 是专为创建文档网站而设计的静态站点生成器。它支持翻译、搜索和版本控制。
  • VuePress 是一个由 Vue 提供支持的静态站点生成器,并针对编写技术文档进行了优化。
  • Jekyll 之前在网站部分提到过,但它也是从 Markdown 文件生成文档网站的好选择。如果你走这条路,请务必查看 Jekyll 文档主题

Markdown 风格

使用 Markdown 最令人困惑的方面之一是,实际上每个 Markdown 应用程序都实现了稍微不同的 Markdown 版本。Markdown 的这些变体通常称为风味。掌握应用程序实现的任何 Markdown 风格是你的工作。

要了解 Markdown 风格的概念,将它们视为语言方言可能会有所帮助。纽约市的人和伦敦人一样说英语,但两个城市使用的方言之间存在很大差异。对于使用不同 Markdown 应用程序的人来说也是如此。使用 Dillinger 编写 Markdown 与使用 Ulysses 是完全不同的体验。

实际上,这意味着当一家公司说他们支持“Markdown”时,你永远不知道他们到底意味着什么。他们是仅谈论 基础语法元素,还是所有基本和扩展语法元素的集合, 抑或是语法元素的任意组合?在你阅读文档或开始使用该应用程序之前,你不会知道。

如果你刚刚开始,我能给你的最好的建议是选择一个具有良好 Markdown 支持的 Markdown 应用程序。这将对维护 Markdown 文件的可移植性大有帮助。你可能希望在其他应用程序中存储和使用你的 Markdown 文件,为此你需要从提供良好支持的应用程序开始。你可以使用 工具 目录找到符合要求的应用程序。

其他资源

有很多资源可以用来学习 Markdown。以下是一些其他介绍性资源: