Markdown 的诞生
2004 年,John Gruber 和 Aaron Swartz 共同创造了 Markdown。当时写博客需要手动输入 HTML 标签,极其繁琐。他们的目标很简单:让写作者用接近自然语言的纯文本写出排版优美的 HTML。
你写的内容:
# 你好,世界 这是一段**加粗**文字和*斜体*文字。 - 第一点 - 第二点
渲染结果:
你好,世界
这是一段加粗文字和斜体文字。
- 第一点
- 第二点
核心设计哲学
Gruber 在设计时遵循了几条原则:
- 可读性优先:即使不渲染,原始 Markdown 文本也应该清晰易读
- 符合直觉:语法借鉴了电子邮件的排版惯例(如用 * 表示列表)
- 足够简单:学习成本极低,30 分钟即可上手
- 专注内容:作者无需关心样式细节,只专注内容本身
规范的分裂与统一
Gruber 最初的 Markdown 规范留有很多模糊之处,导致不同工具渲染结果不一致。2012 年,Jeff Atwood(Stack Overflow 创始人)等人发起了 CommonMark 项目,旨在制定一个精确、无歧义的 Markdown 规范。
| 规范 | 特点 | 使用场景 |
|---|---|---|
| 原始 Markdown | Gruber 的原始规范,存在歧义 | 早期博客工具 |
| CommonMark | 精确规范,有测试套件 | 现代解析器基础 |
| GFM | GitHub 扩展(表格/任务列表/删除线等) | GitHub/GitLab/Gitee |
| MDX | Markdown + JSX 组件 | React 文档站(Docusaurus) |
INFO本教程主要基于 CommonMark 0.31 规范,并重点讲解 GFM(GitHub Flavored Markdown)扩展。这两者覆盖了日常 95% 以上的使用场景。
Markdown 的应用场景
README 文件
每个开源项目的门面,GitHub 自动渲染
技术文档
MkDocs、Docusaurus、GitBook 等文档系统
技术博客
Hugo、Jekyll、Hexo 等静态博客生成器
Jupyter Notebook
代码与文档混排,数据科学必备
即时通讯
Slack、Discord、Notion 均支持 Markdown
个人笔记
Obsidian、Typora、Bear 等笔记应用
选择编辑器
推荐以下工具开始你的 Markdown 之旅:
| 编辑器 | 特点 | 适合场景 |
|---|---|---|
| VS Code | 内置预览,扩展丰富(Markdown All in One) | 开发者首选 |
| Typora | 所见即所得,实时渲染 | 写作者友好 |
| Obsidian | 双向链接,本地知识库 | 个人知识管理 |
| GitHub 网页 | 直接在浏览器编辑并预览 | 快速修改 README |
| HackMD | 在线协作 Markdown | 团队文档协作 |
TIPVS Code 快捷键
Ctrl+Shift+V(Mac: ⌘⇧V)可以在侧边打开 Markdown 预览面板,与源码并排显示。
Markdown 文件的结构
一个良好的 Markdown 文件通常遵循以下结构:
# 主标题 <!-- 整个文档只有一个 H1 --> 简短的介绍段落。 ## 二级标题 正文内容... ### 三级标题 更细的分节...
小结
- Markdown 由 John Gruber 和 Aaron Swartz 于 2004 年创建,核心理念是可读性优先
- CommonMark 是现代标准规范;GFM 是 GitHub 的扩展集(表格、任务列表等)
- Markdown 被广泛用于 README、技术文档、博客、Notebook 等场景
- VS Code 是最推荐的 Markdown 编辑器(内置预览,扩展丰富)