Markdown 是一种轻量级标记语言,由 John Gruber 于 2004 年创建。它的设计理念是让人们使用易读易写的纯文本格式编写文档,然后转换成结构化的 HTML。如今,Markdown 已成为技术文档、博客写作、README 文件的事实标准。本文将系统讲解 Markdown 的核心语法,并介绍实用的转换技巧。
Markdown 的历史与应用场景
诞生背景
2004 年,John Gruber 与 Aaron Swartz 合作设计了 Markdown。他们希望创建一种格式,既能以纯文本形式直接阅读,又能轻松转换为 HTML。这种"所见即所得"的设计理念使 Markdown 在技术社区迅速流行。
主要变体
随着 Markdown 的普及,出现了多种扩展变体:
| 变体 | 特点 | 应用场景 |
|---|---|---|
| CommonMark | 标准化规范 | 通用文档 |
| GFM | 支持表格、任务列表 | GitHub 项目 |
| MDX | 支持 JSX 组件 | React 文档 |
| R Markdown | 支持 R 代码执行 | 数据分析报告 |
应用场景
Markdown 广泛应用于以下领域:
- 技术文档:API 文档、开发指南、README 文件
- 博客写作:Hugo、Jekyll、Hexo 等静态网站生成器
- 笔记应用:Notion、Obsidian、Typora
- 协作平台:GitHub、GitLab、Confluence
基础语法详解
标题
Markdown 使用 # 符号定义标题级别,支持 1-6 级标题:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
另一种写法是使用下划线(仅支持一级和二级):
一级标题
========
二级标题
--------
段落与换行
段落之间用空行分隔。如需在段落内换行,可以在行尾添加两个空格,或使用 <br> 标签。
文本强调
| 语法 | 效果 | 说明 |
|---|---|---|
*斜体* 或 _斜体_ |
斜体 | 单个星号或下划线 |
**粗体** 或 __粗体__ |
粗体 | 两个星号或下划线 |
***粗斜体*** |
粗斜体 | 三个星号 |
~~删除线~~ |
两个波浪线 | |
`行内代码` |
代码 |
反引号包裹 |
列表
无序列表使用 -、* 或 +:
- 项目一
- 项目二
- 子项目 A
- 子项目 B
- 项目三
有序列表使用数字加点:
1. 第一步
2. 第二步
3. 第三步
任务列表(GFM 扩展):
- [x] 已完成任务
- [ ] 待完成任务
- [ ] 另一个待办事项
链接与图片
链接语法:
[链接文本](URL "可选标题")
[QubitTool](https://qubittool.com "在线工具箱")
引用式链接适合长文档管理:
[链接文本][引用标识]
[引用标识]: URL "可选标题"
图片语法与链接类似,只需在前面加 !:

引用
使用 > 创建引用块,可以嵌套:
> 这是一段引用文本。
> 可以跨越多行。
>
> > 这是嵌套引用。
分隔线
使用三个或更多的 -、* 或 _ 创建分隔线:
---
***
___
高级语法
代码块
行内代码使用反引号包裹:
使用 `npm install` 安装依赖
代码块使用三个反引号,可指定语言实现语法高亮。支持的语言标识包括:javascript、python、java、go、rust、sql、bash、json、yaml、html、css 等。
表格
使用 | 和 - 创建表格,对齐方式由 : 的位置决定:
| 左对齐 | 居中对齐 | 右对齐 |
|:-------|:--------:|-------:|
| 内容1 | 内容2 | 内容3 |
:---左对齐:---:居中---:右对齐
脚注
这是一段带有脚注的文本[^1]。
[^1]: 这是脚注的内容。
HTML 与 Markdown 互转
在 Markdown 中使用 HTML
Markdown 支持直接嵌入 HTML 标签,这在需要更精细控制时非常有用:
<div align="center">
<img src="image.png" width="300">
</div>
<details>
<summary>点击展开</summary>
这里是折叠的内容。
</details>
常用的 HTML 增强功能:
| 用途 | HTML 代码 |
|---|---|
| 居中图片 | <div align="center">...</div> |
| 折叠内容 | <details><summary>...</summary>...</details> |
| 键盘按键 | <kbd>Ctrl</kbd> + <kbd>C</kbd> |
| 上标下标 | H<sub>2</sub>O、x<sup>2</sup> |
HTML 转 Markdown
将现有的 HTML 内容转换为 Markdown 是常见需求,特别是在迁移博客或整理文档时。使用 HTML 转 Markdown 工具 可以自动完成这项工作。
转换示例:
HTML 代码 <h1>标题</h1><p>这是<strong>重要</strong>的文字。</p> 会被转换为:
# 标题
这是**重要**的文字。
Markdown 转 HTML
当需要将 Markdown 内容发布到不支持 Markdown 的平台时,可以使用 Markdown 转 HTML 工具 进行转换。这在以下场景特别有用:
- 发送富文本邮件
- 在传统 CMS 中发布内容
- 生成静态 HTML 页面
- 嵌入到其他应用程序中
扩展语法
数学公式(LaTeX)
许多 Markdown 解析器支持 LaTeX 数学公式:
- 行内公式:
$E = mc^2$ - 块级公式:使用
$$包裹,如$$\sum_{i=1}^{n} x_i$$
流程图(Mermaid)
GFM 和部分编辑器支持 Mermaid 流程图语法,可以用文本描述绘制流程图、时序图、甘特图等。
实用技巧与最佳实践
编写规范
- 标题层级:保持标题层级连续,不要跳级
- 空行使用:在标题、列表、代码块前后添加空行
- 链接管理:长文档使用引用式链接,便于维护
- 图片优化:添加有意义的 alt 文本,提升可访问性
常见问题解决
特殊字符转义:使用反斜杠转义 Markdown 特殊字符,如 \*这不是斜体\*。
表格内换行:使用 <br> 标签在表格单元格内换行。
推荐工具
为了提高 Markdown 编写效率,推荐使用专业的在线工具:
- Markdown 编辑器:实时预览、语法高亮、一键导出,支持 GFM 扩展语法
- HTML 转 Markdown:智能转换 HTML 为简洁的 Markdown 格式
- Markdown 转 HTML:将 Markdown 转换为标准 HTML,支持自定义样式
总结
Markdown 以其简洁的语法和强大的表现力,成为现代文档编写的首选格式。掌握本文介绍的基础语法和高级技巧,配合 QubitTool 的 Markdown 工具集,你可以高效地创建专业的技术文档、博客文章和项目说明。
无论是日常笔记还是正式文档,Markdown 都能让你专注于内容本身,而不是繁琐的格式调整。开始使用 Markdown,体验纯文本写作的魅力吧!