Markdown 是一种轻量级标记语言,由 John Gruber 于 2004 年创建。它用简单的符号代替复杂的排版操作,让写作者专注于内容本身,而不是格式调整。如今,Markdown 已经成为技术文档、博客、笔记、README 的事实标准,几乎所有开发者工具都原生支持它。
📑 目录
- 基础语法速查
- 扩展语法(GFM)
- 表格与任务列表
- 数学公式与图表
- 写作最佳实践
1. 基础语法速查
掌握 Markdown 基础只需要十分钟。以下是最常用的语法元素,覆盖 90% 的日常写作需求。
标题与段落
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
这是一个段落。段落之间用空行分隔。
行尾加两个空格实现
强制换行
强调与列表
*斜体文本* 或 _斜体_
**粗体文本** 或 __粗体__
***粗斜体*** 或 ___粗斜体___
~~删除线~~
- 无序列表项 1
- 无序列表项 2
- 嵌套项
1. 有序列表第一
2. 有序列表第二
链接与图片
[显示文本](https://example.com "悬浮标题")

[text][id]
[id]: https://example.com
代码与引用
行内代码:`const a = 1;`
代码块(指定语言高亮):
\`\`\`javascript
function hello() {
console.log("Hello, Markdown!");
}
\`\`\`
> 这是一段引用
> 可以有多行
> > 还可以嵌套引用
2. 扩展语法:GitHub Flavored Markdown
标准 Markdown 功能有限,各大平台在其基础上做了扩展。GitHub 推出的 GFM(GitHub Flavored Markdown)是目前最流行的扩展版本,支持表格、任务列表、删除线、围栏代码块等实用功能。
围栏代码块与语法高亮
使用三个反引号包裹代码,并在开头指定语言名称,就能获得语法高亮。支持的语言多达上百种,常见的有 javascript、python、html、css、bash、json、sql 等。
\`\`\`python
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
\`\`\`
3. 表格与任务列表
表格是 GFM 最实用的扩展之一,使用竖线和短横线即可绘制。对齐方式通过冒号控制。
| 左对齐 | 居中 | 右对齐 |
|:-------|:----:|-------:|
| 内容 | 内容 | 内容 |
| 数据 | 数据 | 数据 |
任务列表
任务列表非常适合写 TODO 清单,在 GitHub Issue 和项目管理中广泛使用。
- [x] 已完成的任务
- [ ] 待办任务
- [ ] 子任务 A
- [ ] 子任务 B
- [ ] 另一个任务
4. 进阶:数学公式与图表
越来越多的 Markdown 编辑器支持 LaTeX 数学公式和 Mermaid 图表,让技术文档的表达能力大大增强。
数学公式(KaTeX / MathJax)
行内公式:$E = mc^2$
块级公式:
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
Mermaid 流程图
\`\`\`mermaid
graph TD
A[开始] --> B{判断}
B -->|是| C[执行 A]
B -->|否| D[执行 B]
C --> E[结束]
D --> E
\`\`\`
Mermaid 还支持时序图、类图、甘特图、饼图等多种图表类型,是绘制技术架构图的利器。
5. Markdown 写作最佳实践
好的 Markdown 不仅能正确渲染,还应该在纯文本状态下也具备良好的可读性。以下是一些被广泛认可的最佳实践:
- 统一符号风格:列表统一用
-,强调统一用*,避免混用不同符号 - ATX 标题优先:使用
#开头的 ATX 风格,而非下划线的 Setext 风格 - 代码块指定语言:始终为代码块声明语言,确保语法高亮
- 相对路径引用:图片和链接尽量使用相对路径,便于文档迁移
- 合理分段:每段不超过 4-5 行,长文善用小标题分层
- 文件名用英文小写:README.md、CHANGELOG.md 等约定俗成
- 善用注释:使用 HTML 注释
<!-- 注释 -->隐藏草稿或说明
常用工具推荐
市面上有大量优秀的 Markdown 工具:VS Code 配合 Markdown All in One 插件是程序员的首选;Typora 提供所见即所得的编辑体验;Obsidian 则适合知识管理和双链笔记。此外,DevToolHub 也提供了在线的 Markdown 预览工具,无需安装即可快速查看渲染效果。
6. Markdown 变体与兼容性
虽然 Markdown 的核心语法是统一的,但不同平台对扩展语法的支持程度不同。了解这些差异,可以避免"在 A 编辑器里好好的,复制到 B 平台就乱了"的尴尬。
CommonMark 标准
CommonMark 是 Markdown 的官方规范,由 John MacFarlane 等人发起,旨在解决 Markdown 语法模糊、各实现不一致的问题。GitHub、Discourse、Reddit 等大平台都遵循 CommonMark 规范,在此基础上添加自己的扩展。
常见平台差异
- GitHub:GFM,支持表格、任务列表、删除线、代码围栏、数学公式(部分仓库)
- Notion:自定义的块级 Markdown,支持 toggle、callout、database 等专有语法
- 掘金/知乎:支持表格、代码高亮,但不支持数学公式或 mermaid
- 语雀/飞书:支持大部分 GFM 语法,增加了一些自己的扩展(如卡片、提示框)
- 微信公众号:支持非常有限,表格、代码块经常出问题,通常需要用排版工具转换
迁移建议
如果你的文章需要在多个平台发布,建议使用最基础的 CommonMark 语法写作,然后针对不同平台做适配。尽量避免使用平台专有扩展,否则迁移成本会很高。对于需要复杂排版的场景,可以考虑用 MDX(Markdown + JSX),在保留 Markdown 简洁性的同时拥有组件化能力。
7. 高级技巧
脚注与定义列表
一些 Markdown 扩展支持更学术化的写作元素:
这是一段引用了脚注的文字[^1]。
[^1]: 这是脚注的内容,会显示在页面底部。
: 定义列表:
: 项目 1
定义内容
: 项目 2
定义内容
HTML 嵌入
Markdown 原生支持嵌入 HTML,遇到 Markdown 语法无法实现的效果时,可以直接写 HTML:
<details>
<summary>点击展开详情</summary>
这里的内容默认折叠,点击后才展开。
支持完整的 Markdown 语法。
</details>
<table>
<tr><th>表头</th></tr>
<tr><td>单元格</td></tr>
</table>
快捷键与效率技巧
专业的 Markdown 编辑器提供了大量快捷键,可以大大提升写作效率:
- Cmd/Ctrl + B:加粗选中文本
- Cmd/Ctrl + I:斜体选中文本
- Cmd/Ctrl + K:插入链接
- Cmd/Ctrl + Shift + K:插入代码块
- Cmd/Ctrl + ]:列表缩进
- Cmd/Ctrl + Enter:插入新的列表项
另外,用 Markdown 写作时建议打开"实时预览"或"分屏预览"模式,边写边看效果,避免写完才发现格式不对。DevToolHub 的在线 Markdown 预览工具支持实时渲染和导出,随时随地都能写。
8. Markdown 生态与周边工具
Markdown 已经发展出了一个庞大的生态系统,从写作工具到发布平台,从静态站点生成器到幻灯片工具,应有尽有。
- 静态站点生成器:Jekyll、Hugo、VitePress、Docusaurus——把 Markdown 变成漂亮的网站
- 幻灯片工具:Marp、Slidev、reveal-md——用 Markdown 写 PPT
- 文档平台:GitBook、ReadTheDocs、MkDocs——项目文档首选
- 笔记应用:Obsidian、Logseq、Typora——知识管理与双链笔记
- API 文档:Swagger/OpenAPI、API Blueprint——API 文档也用 Markdown 语法
- 电子书:GitBook、Pandoc——把 Markdown 转成 PDF、EPUB、MOBI
掌握 Markdown 的价值远不止写几篇博客。它是一种通用的内容创作格式,你的笔记、文档、演示文稿、书籍都可以用它来写,一次编写,到处发布。
总而言之,Markdown 是一项投入产出比极高的技能——花一两个小时学会,就能在职业生涯中持续受益。无论是写文档、记笔记、写博客还是写书,它都是最通用、最持久的内容格式。
总结
Markdown 的魅力在于它的简单和通用。花十几分钟学会基础语法,就能终身受益——写技术文档、记笔记、发博客、写书籍,几乎所有文字创作场景都能用上。更重要的是,Markdown 文件是纯文本格式,不依赖任何特定软件,几十年后依然可以打开阅读,这是任何富文本格式都做不到的。