本文介绍一个在程序员中经常使用,但对其他朋友来说可能有点陌生的东西:Markdown。你可能听过这个词,也可能完全没概念,没关系,这篇文章就是要用最通俗易懂的语言,带你全面了解这个神奇的工具。
Markdown 是什么?
简单来说,Markdown 是一种轻量级的标记语言。它不是像 Word 那样“所见即所得”的编辑器,而是用一些简单的符号,让你在 纯文本 文件中就能实现格式化。
- 纯文本的魔力: 你可以用任何文本编辑器打开 Markdown 文件,包括 Windows 自带的记事本,因为它本质上就是纯文本。这意味着你的文档不会被任何专有软件绑定,不会出现版本不兼容的问题。
- 易读易写: Markdown 的语法非常简单,你不需要记住复杂的代码,只需要用一些常用的符号,比如星号、井号、中括号等,就可以实现加粗、斜体、标题、链接等效果。
Markdown 是由 John Gruber 在 2004 年创建的。它最初的设计目标是让大家可以使用易于阅读、易于撰写的纯文字格式来编写文档,并选择性地将其转换为有效的 HTML 文档。简单地说,就是希望你的文档在没有渲染的情况下,也能够让人轻松看懂。Markdown 吸收了很多在电子邮件中已有的纯文本标记的特性。
Markdown 长什么样?
上图是 Markdown 在线编辑器「人言兑.md」的截图,图中左侧就是 Markdown 文本,右边是在网页中渲染后的效果,可以直接复制到微信公众号发布。
为什么要使用 Markdown?
你可能会问,既然有 Word 这种强大的编辑器,我为什么要用 Markdown 呢?原因有很多:
- 跨平台、可移植: 你可以用任何设备、任何操作系统创建 Markdown 文件,并且可以在不同的应用程序之间轻松导入导出。这与那些专有文件格式的软件形成了鲜明的对比。
- 未来保障: 即使你使用的应用程序将来停止工作,你仍然可以用任何文本编辑器读取你的 Markdown 文件。对于需要长期保存的文件(比如论文、书籍)来说,这点非常重要。
- 专注于内容: Markdown 让你专注于文字本身,而不是格式的调整。你可以更高效地写作,无需浪费精力去设置字体、颜色、排版等。
- 应用广泛: 很多网站、论坛、开发工具都支持 Markdown,比如 GitHub、Reddit、CSDN 等。你可以用它来写博客、文档、笔记、甚至电子书,甚至微信公众号文章的排版都能使用 Markdown。
- 版本控制友好: 由于 Markdown 是纯文本,所以可以很方便地纳入版本控制系统,如 Git。这对于多人协作编写文档非常有用。
- 轻量化: Markdown 语法简洁,学习成本低,可以快速上手。
Markdown 的工作原理
你可能会好奇,Markdown 是如何把这些简单的符号变成漂亮的格式的?这里简单解释一下:
- 编写: 你用文本编辑器创建一个以
.md
或.markdown
为后缀的文件,并用 Markdown 语法编写内容。 - 处理: 你需要一个Markdown 应用程序,比如一个在线编辑器,或者一个本地的桌面程序。这个程序会使用一个Markdown 处理器(也叫“解析器”或“实现”) 将你的 Markdown 文本转换为 HTML 格式。
- 呈现: 最后,你可以在浏览器中查看 HTML 格式的文档,或者将它转换为 PDF 等其他格式。
你可以把 Markdown 想象成一个“翻译器”,它把你的“符号语言”翻译成浏览器能看懂的 HTML 语言。
Markdown 的常见用法
Markdown 虽然简单,但是功能却很强大。下面我们来看看 Markdown 的一些常见用法:
- 标题: 用
#
号表示标题,一个#
号表示一级标题,两个#
号表示二级标题,以此类推。# 一级标题
## 二级标题
### 三级标题
- 强调: 用
*
或_
包围文字表示斜体,用**
或__
包围文字表示加粗。*斜体文本*
**加粗文本**
_斜体文本_
__加粗文本__
- 删除线: 用
~~
包围文字表示删除线。~~删除线文本~~
- 列表: 用
*
、+
或-
表示无序列表,用1.
2.
3.
表示有序列表。* 列表项1
+ 列表项2
- 列表项3
1. 列表项A
2. 列表项B
3. 列表项C
- 链接: 用
[链接文本](链接地址)
的形式表示链接。[点击这里访问百度](https://www.baidu.com)
- 图片: 用
![图片alt](图片地址)
的形式插入图片。![图片描述](https://example.com/image.jpg)
- 代码: 用 ` 包围代码表示行内代码,用``` 包围代码块表示代码块。
- `行内代码`
- ``` 代码块 ```
- 引用: 用
>
表示引用。> 这是一段引用文字
- 分割线: 用
---
或***
表示分割线。---
***
- 换行: 在行末添加两个空格,可以实现换行。
这些只是 Markdown 的基本语法,还有很多高级用法,比如表格、脚注、定义列表等,可以通过实践慢慢掌握。
相关阅读:Markdown 语法教程手册:精通 Markdown,看这一篇就够了!
Markdown 的应用场景
Markdown 的应用场景非常广泛,这里列举一些常见的例子:
- 网站: 你可以用 Markdown 来创建网站内容,很多静态网站生成器都支持 Markdown。比如 Jekyll, MkDocs, Docusaurus 等。
- 文档: 很多公司都用 Markdown 来写技术文档, 比如 Read the Docs。
- 笔记: 你可以用 Markdown 来做笔记,很多笔记应用都支持 Markdown,比如 Simplenote, Notable, Bear。
- 微信公众号文章排版: 我们还可以使用 Markdown 来写公众号文章,通过像 「人言兑.md」 这样的 Markdown 微信公众号排版编辑器,可以将 Markdown 文章一键复制为不同主题风格的微信公众号图文排版,非常高效。
- 书籍: 你可以用 Markdown 来写书,比如 Leanpub 可以将 Markdown 转换为电子书。
- 演示文稿: 你可以用 Markdown 来做演示文稿,比如 Remark, Cleaver, Marp。
- 邮件: 你可以用 Markdown 来写邮件,一些浏览器扩展程序可以将 Markdown 转换为 HTML 邮件。
- 协作平台: 很多协作平台都支持 Markdown, 比如 Slack, Discord, Wiki.js 等。
- 论坛: 许多论坛也使用 Markdown 来发布消息,如 Reddit, Discord。
- 电子书: Markdown 甚至可以用来撰写电子书。
- 代码托管平台: 主流的代码托管平台,如 GitHub、GitLab、BitBucket、Coding、Gitee 等,都支持 Markdown 语法,很多开源项目的 README、开发文档、帮助文档、Wiki 等都用 Markdown 写作。
Markdown 的“方言”
由于 Markdown 的语法简单,很多人在它的基础上进行了扩展,所以就出现了不同的**“方言”**(也叫“变体”或“Flavor”)。
- CommonMark: 为了解决 Markdown 标准不统一的问题,一些开发者制定了 CommonMark 标准。
- GFM(Github Flavored Markdown): 这是 GitHub 使用的 Markdown 方言。它在 CommonMark 的基础上添加了一些功能,比如表格、删除线、自动链接和任务列表。 GFM 忽略单词中的下划线,并添加语法高亮显示、任务列表和表格。
- Markdown Extra: 这种变体在普通 Markdown 语法的基础上,添加了诸如 HTML 块内的 Markdown 标记、带 id/class 属性的元素、围栏代码块、表格、定义列表、脚注、缩写等功能。
- 人言兑.md: 为了方便更好的使用 Markdown 语法写微信公众号文章,根据人言兑.md-公众号排版编辑器功能介绍,支持外链自动转脚注、数学公式、自动生成文章目录、横滑多张图片以及通过语法设置图片尺寸和图片卡片链接等特殊语法。
不同应用程序支持的 Markdown 语法可能略有不同,你需要根据你使用的应用程序的文档来了解它的支持情况。
工欲善其事,必先利其器
如果你想开始使用 Markdown,你需要一个好用的工具。这里推荐一些:
- 在线编辑器:
- Dillinger: 一个非常流行的在线 Markdown 编辑器。
- StackEdit: 也是一个强大的在线 Markdown 编辑器。
- 在线 Markdown 编辑器: 「人言兑.md」网站都提供在线 Markdown 编辑器,可以让你在浏览器中编写和预览 Markdown 文档。
- 桌面编辑器:
- VS Code: 一个非常流行的代码编辑器,也支持 Markdown。
- Atom: 另一个代码编辑器,也支持 Markdown。
- MacDown: 一个 Mac 平台的 Markdown 编辑器。
- iA Writer: 一个跨平台的 Markdown 编辑器。
- Typora: 一款简洁优雅的 Markdown 编辑器(所见即所得)。
- Ulysses / Mou / 妙言 / Markpad : 一些其他的专用编辑器。
- 通用文本和代码编辑器: 许多通用文本和代码编辑器都具有内置的 Markdown 语法高亮插件,或者可以作为可选下载。
你可以根据自己的需求选择合适的工具。Atom是一个灵活的编辑器,可以用来格式化 Markdown 文本。RStudio是一个用于 R 的 IDE,为称为 sundown 的 Markdown 变体提供了 C++包装函数。 Visual Studio Code 对 Markdown 的支持度极高。
Markdown 的标准化
由于 Markdown 的各种变体,导致了标准不统一的问题。因此,CommonMark 出现了,旨在为 Markdown 提供一个标准化的规范。Babelmark 是一个可用于比较各种 Markdown 实现的输出的工具,以促进关于如何以及是否应该阐明 Markdown 规范的某些模糊方面的讨论。尽管如此, Markdown 的创始人 John Gruber 认为不应完全标准化,因为“不同的网站(和人们)有不同的需求。没有一种语法可以让所有人满意。”。
总结
Markdown 是一种简单、强大、灵活的工具,它可以帮助你更高效地写作和管理文档。无论你是程序员、作家、学生、还是任何需要书写的人,都可以从 Markdown 中受益。
希望这篇文章能让你对 Markdown 有一个全面的了解。现在就开始尝试吧,相信你会爱上它的!