Markdown:一种穿越20年的文本范式
md极简速成
Markdown 是一种纯文本标记语言——你用几个符号告诉电脑“这行是标题”“这段要加粗”,它就帮你渲染成漂亮的网页。
不需要安装 Word,不需要拖拽排版,打开任何文本编辑器就能写。GitHub、Notion、飞书、Obsidian、本站博客——全都支持 Markdown。
学会它,你就掌握了互联网写作的通用语言。
从纸上的批注到 Markdown
“标记”(markup)这个词并不是互联网发明的。过去编辑会在纸稿上留下批注:这里要加粗,那里要改成标题,某一段需要移动。电子文档里的标记语言做的事情很相似,只是把这些提示写进文本中。
Markdown 在 2004 年出现。它属于轻量级标记语言:符号很少,即使不经过渲染,原始文本也依然容易阅读。它适合博客、笔记、说明文档和 README,但并不追求包办复杂排版。
同一句话,不同语言怎么写?
下面几种语言都能表达“把重点加粗”,但写法很不一样:
| 语言 | 原始写法 | 渲染后的含义 |
|---|---|---|
| Markdown | **重点内容** | 重点内容 |
| BBCode | [b]重点内容[/b] | 加粗的“重点内容” |
| HTML | <strong>重点内容</strong> | 重点内容 |
| Wikitext | '''重点内容''' | 加粗的“重点内容” |
Markdown 的优势不只是字符更少,而是原始写法看起来仍然像一篇可以直接阅读的文章。你不用频繁点击工具栏,也不必先理解复杂标签。
Markdown 有很多“口味”。Obsidian、GitHub 和博客系统支持的细节可能略有差异,所以尽量使用简单、常见的写法。遇到表格、脚注等扩展语法时,最好在发布前预览一次。
延伸阅读:Markdown: History, Development and Aspects
先记住三个习惯
Markdown 不难。开始写之前,只需要记住三件事:
- 在标题、段落、列表前后适当留出空行。
- 在
#、-、>等符号后面加一个空格。 - 先用最简单的写法,遇到特殊需求再查速查表。
这些习惯能让文章在 Obsidian、博客和其他编辑器里保持稳定的排版效果。
标题:用 # 的数量表示层级
# 越多,标题越小。最多 6 级,但实际写作中 3 级足够。
# 一级标题(文章主标题)
## 二级标题(章节)
### 三级标题(子章节)
注意:
#后面要留一个空格。一级标题通常整篇文章只用一次,对应文章的大标题;正文从二级标题开始用。
段落和换行:空行是分段的唯一方式
两段文字之间空一行就是分段。直接回车不会换行(这是新手最常踩的坑)。
这是第一段。
这是第二段。中间空了一行,所以它们是两个独立的段落。
这两行之间没有空行,
所以会被拼成同一段。
如果你真的想在段落内强制换行,可以在行尾加 <br>。也可以在行尾加两个空格再回车,但空格不容易被看见。大多数时候,直接分段更清晰。
文字样式:加粗、斜体、删除线
**加粗** 用两个星号包裹
*斜体* 用一个星号包裹
***又粗又斜*** 用三个星号
~~删除线~~ 用两个波浪号
效果:
加粗 / 斜体 / 又粗又斜 / 删除线
实战建议:加粗用于强调关键信息,斜体用于术语或引用语气,删除线用于表示”我改主意了”。
列表:有序和无序
无序列表:用 - 开头
- 咖啡
- 代码
- 深夜的 bug
- 咖啡
- 代码
- 深夜的 bug
有序列表:用数字开头
1. 打开编辑器
2. 写 Markdown
3. 推送发布
- 打开编辑器
- 写 Markdown
- 推送发布
嵌套列表:缩进两个空格
- 前端
- HTML
- CSS
- JavaScript
- 后端
- Python
- Go
- 前端
- HTML
- CSS
- JavaScript
- 后端
- Python
- Go
链接和图片
链接
[显示的文字](网址)
例如:[Butea Studio](https://butea.io) → Butea Studio
想让一段网址自动变成链接,可以用尖括号包起来:
<https://www.markdownguide.org>
图片
跟链接几乎一样,前面多一个 !:

例如:

图片描述(alt text)不是装饰——它在图片加载失败时显示,也帮助视障用户理解内容。养成写描述的好习惯。
引用:用 > 开头
> 好的设计是尽可能少的设计。
> — Dieter Rams
好的设计是尽可能少的设计。 — Dieter Rams
引用可以嵌套,也可以在里面用其他 Markdown 语法:
提示: 你可以在引用里使用 斜体、
代码、甚至 链接。
代码:行内和代码块
行内代码
用反引号把代码包起来:
运行 `npm run dev` 启动开发服务器。
效果:运行 npm run dev 启动开发服务器。
代码块
用三个反引号包裹,第一行可以标注语言名称来启用语法高亮:
```javascript
function greet(name) {
return `Hello, ${name}!`;
}
```
效果:
function greet(name) {
return `Hello, ${name}!`;
}
支持的语言:html css javascript typescript python bash json markdown 等几十种。
表格:用竖线和短横线画格子
| 工具 | 用途 | 难度 |
|------|------|------|
| Markdown | 写作 | 简单 |
| HTML | 网页 | 中等 |
| LaTeX | 论文 | 地狱 |
| 工具 | 用途 | 难度 |
|---|---|---|
| Markdown | 写作 | 简单 |
| HTML | 网页 | 中等 |
| LaTeX | 论文 | 地狱 |
表格不需要对齐得很完美,解析器不在乎你的空格数。但对齐了看源码更舒服。
分割线:三个短横线
---
就像这样,在两个章节之间画一条线:
脚注:给文章加注释
Markdown 由 John Gruber 在 2004 年创建[^1]。
[^1]: 他与 Aaron Swartz 合作完成了最初的设计。
Markdown 由 John Gruber 在 2004 年创建1。
进阶技巧
任务列表(待办清单)
- [x] 学会标题和段落
- [x] 学会加粗和列表
- [ ] 学会表格和代码块
- [ ] 写一篇自己的博客
- 学会标题和段落
- 学会加粗和列表
- 学会表格和代码块
- 写一篇自己的博客
HTML 混写
Markdown 里可以直接写 HTML,应对一些 Markdown 搞不定的场景:
H<sub>2</sub>O 是水的化学式
按 <kbd>Ctrl</kbd> + <kbd>C</kbd> 复制
<mark>高亮文字</mark> 用 mark 标签
H2O 是水的化学式
按 Ctrl + C 复制
高亮文字 用 mark 标签
显示特殊符号:用反斜杠转义
如果你想显示 *、#、- 等符号本身,而不是让它们触发格式,在前面加一个反斜杠 \:
\* 这不是列表,只是一个星号
\# 这不是标题,只是一个井号
效果:
* 这不是列表,只是一个星号
# 这不是标题,只是一个井号
速查表
| 你想做什么 | 怎么写 |
|---|---|
| 标题 | ## 标题文字 |
| 加粗 | **加粗文字** |
| 斜体 | *斜体文字* |
| 链接 | [文字](网址) |
| 图片 |  |
| 无序列表 | - 列表项 |
| 有序列表 | 1. 列表项 |
| 强制换行 | 文字<br> |
| 引用 | > 引用文字 |
| 行内代码 | `代码` |
| 代码块 | ```语言名 代码 ``` |
| 表格 | | 列1 | 列2 | |
| 分割线 | --- |
| 删除线 | ~~删除的文字~~ |
| 显示特殊符号 | \* |
现在你已经掌握了 Markdown 的核心语法。最好的练习方式就是马上写一篇文章——打开编辑器,从 ## 开始,边写边查这份速查表,几篇下来就完全内化了。
Footnotes
-
他与 Aaron Swartz 合作完成了最初的设计。 ↩