Markdown 为什么这么火?
你写过两种文档吗?一种是 Word,另一种是记事本。
Word 里你需要选字体、调字号、点加粗按钮、找插入图片的位置。每一步都要用鼠标点来点去,文档里还藏着大量你看不见的格式代码。
记事本就清爽多了——纯文本,打开就能写,复制粘贴到其他平台也不会丢失排版。但它的问题是:没有格式。
Markdown 就是这两种体验的中间态。你写的看起来就是最终效果,同时底层是一行行纯文本。比如:
这是一段**加粗**的文字,这是一段*斜体*的文字。
- 第一项
- 第二项
- 第三项
渲染出来就是:
这是一段加粗的文字,这是一段斜体的文字。
- 第一项
- 第二项
- 第三项
简单、直观、不需要鼠标。
核心语法速查
标题
Markdown 用 # 表示标题,一个 # 是一级标题,六个 # 是六级标题:
# 一级标题
## 二级标题
### 三级标题
粗体和斜体
| 效果 | 写法 |
|---|---|
| 加粗 | **文字** 或 __文字__ |
| 斜体 | *文字* 或 _文字_ |
| 粗斜体 | ***文字*** |
引用
用 > 开头表示引用:
> 这就是引用文字。
>
> 换行不需要空行,只要继续用 `>` 开头就行。
引用可以嵌套:
> 外层引用
>> 内层引用
代码
行内代码用反引号 ` 包裹:
在 Python 里,打印用 `print()` 函数。
多行代码用三个反引号加语言名:
```python
def hello():
print("Hello, World!")
渲染结果就是一个带语言高亮的代码块。
列表
有序列表用数字加点:
1. 第一步
2. 第二步
3. 第三步
无序列表用 -、+ 或 * 都行:
- 项目 A
- 项目 B
- 子项目 B1
- 子项目 B2
列表嵌套靠缩进,两个空格就够。
链接和图片
[导航工具箱](https://navbox.com.cn)

注意:链接的括号里是目标URL,图片的括号前面多一个 !。很多人会记混这两个。
分割线
三个以上的 -、* 或 _,单独一行:
---
会渲染成一条水平分割线。
表格
| 功能 | 语法 | 示例 |
|------|------|------|
| 加粗 | `**文字**` | `**重要**` |
| 斜体 | `*文字*` | `*强调*` |
表头的分隔线用 ---,冒号可以控制对齐:
| 左对齐 | 居中 | 右对齐 |
|:-------|:----:|-------:|
| 左对齐 | 居中 | 右对齐 |
进阶技巧
转义反引号
反引号在 Markdown 里有特殊含义。如果你要在文本中显示一个反引号,用反斜杠转义:
这是 \` 一个反引号
渲染结果:这是 ` 一个反引号
HTML 混写
Markdown 里可以直接写 HTML。这在 Markdown 原生不支持的场景特别有用:
点击 <a href="https://navbox.com.cn">这里</a> 跳转到导航工具箱
<details>
<summary>点击展开</summary>
这是一段折叠内容。
</details>
任务列表
不是所有 Markdown 引擎都支持,但 GitHub 和大多数编辑器都支持:
- [x] 已完成的任务
- [ ] 待完成的任务
- [ ] 还有一个任务
渲染出来就是带勾选框的列表。
脚注
这是带脚注的内容[^1]
[^1]: 这是脚注的具体内容
渲染出来,脚注内容会出现在页面底部,引用处会有上标数字。
自动链接
用尖括号包裹 URL,Markdown 会自动把它变成可点击链接:
<https://navbox.com.cn>
渲染为:https://navbox.com.cn
常见排版陷阱
陷阱一:列表里的空行
- 第一项
- 第二项
你可能以为这会渲染成一个两段式的列表。但实际结果是:两段独立的段落,不是一个列表。
如果你在列表中间需要空行,用 HTML 的 <br> 标签或者缩进一个空行:
- 第一项
(这里可以写多行描述)
- 第二项
陷阱二:Markdown 解析顺序
Markdown 解析是按顺序来的。先解析行内格式(粗体、斜体等),再解析块级格式(标题、列表等)。这导致一些奇怪的边界情况:
**这是一段*粗斜体*文字**
这个写法在某些引擎里会渲染成 “这是一段粗斜体文字”,在另一些引擎里会渲染成 “粗斜体” 被当作普通文字。最安全的做法是用下划线包裹:
__这是一段*粗斜体*文字__
陷阱三:Markdown 里嵌套 HTML 的特殊字符
如果你在 Markdown 里写了 HTML 标签,而标签里面又有 < 或 >,需要用 HTML 实体转义:
<!-- ❌ 可能被当成 HTML 标签 -->
`<div>` 标签
<!-- ✅ 正确写法 -->
`<div>` 标签
或者用反引号包裹,大多数现代引擎能正确处理。
陷阱四:代码块里的 Markdown 不生效
这是最重要的规则之一:代码块里的 Markdown 语法不会渲染。
```markdown
# 这不是标题
**这也不是加粗**
```
代码块里的内容就是纯文本。如果你想在代码块里显示 Markdown 语法,这个规则反而帮了你的忙——你不需要额外转义。
各平台的 Markdown 差异
同样的 Markdown 语法,在不同平台上的表现可能不同:
| 特性 | GitHub | 微信公众号 | VS Code | Obsidian |
|---|---|---|---|---|
| 表格 | ✅ | ❌ | ✅ | ✅ |
| 任务列表 | ✅ | ❌ | ✅ | ✅ |
| 折叠内容 | ❌ | ❌ | ✅ | ✅ |
| 脚注 | ✅ | ❌ | ✅ | ✅ |
| 数学公式 | ✅ (LaTeX) | ❌ | ✅ | ✅ |
| 流程图 | ✅ (Mermaid) | ❌ | ✅ | ✅ |
如果你需要写微信公众号文章,或者在其他不支持高级特性的平台上发布,建议先用 navbox 的 Markdown 预览工具 预览效果,确认格式正确再发布。
日常写作工作流
场景一:技术文档
我推荐用 VS Code + Markdown 插件写技术文档。VS Code 自带 Markdown 预览(按 Ctrl+Shift+V),边写边看效果。写完后导出为 HTML 或 PDF 发布。
场景二:博客文章
很多博客系统(如 Hugo、WordPress)都支持 Markdown 输入。直接写 .md 文件,发布时自动渲染。如果你在用 Hugo 搭建的导航工具箱,所有文章也都是 Markdown 格式——在 content/ 目录下新建 .md 文件就能自动发布。
场景三:团队协作文档
Notion、飞书、语雀等在线文档工具都支持导入 Markdown。你可以先在本地写好草稿,粘贴进去就能自动识别格式。不需要来回转换。
场景四:快速笔记
手机备忘录里也可以写 Markdown。简单的加粗、列表、代码块,在任何平台上都能用。配合 navbox 的 文本处理工具,还能对笔记做批量替换、行排序、去重等处理。
相关工具推荐
navbox 上有多款工具可以辅助 Markdown 写作和文本处理:
| 工具 | 用途 |
|---|---|
| Markdown 预览 | 实时预览 Markdown 渲染效果 |
| Markdown 转 HTML | 将 Markdown 转换为 HTML 代码 |
| 文本去重 | 去除文本中的重复行 |
| 文本对比 | 比较两段文本的差异 |
| JSON 格式化 | 处理 Markdown 中嵌入的 JSON 数据 |
总结
Markdown 的魅力就在于它够简单。不需要学一堆标签,不需要记住复杂的规则,你写的东西就是你看到的東西。
掌握这十几个核心语法,你日常 90% 的文档需求都能搞定。剩下的 10%——折叠内容、脚注、流程图——按需查一下文档就好。
现在就去试试在你的下一个文档里用 Markdown 写。写完可以复制到 Markdown 预览工具 里看看效果,比在脑子里想象要靠谱得多。