前言

在互联网写作与技术文档开发领域,Markdown 已经成为了当之无愧的“通用语言”。它由约翰·格鲁伯(John Gruber)于 2004 年创建,是一种轻量级的标记语言。

许多人在接触 Markdown 之前,习惯于使用 Word 等富文本编辑器。然而,Word 文档在不同设备、不同软件之间经常会出现排版错乱的问题,且作者需要频繁分心去用鼠标点击加粗、调整字号和行距。

Markdown 的核心哲学是:内容与排版分离,让作者专注于写作本身。通过简单的纯文本标记,你可以在几秒钟内排版出一篇美观、结构清晰的文章,并且能无缝导出为 HTML、PDF、Word 或者直接发布到个人博客和 GitHub。

本文将带你从零开始,系统地掌握 Markdown 的所有常用语法,并深入探讨一些高级扩展特性和写作排版的美学规范。


一、Markdown 基础语法

基础语法是所有 Markdown 解析器都 100% 支持的核心规范。掌握这部分内容即可满足 90% 的日常写作需求。

1. 标题 (Headings)

Markdown 通过在行首添加 # 号来表示标题,# 的数量代表标题的级别,最多支持六级标题。

语法格式

1
2
3
4
5
6
# 一级标题 (H1)
## 二级标题 (H2)
### 三级标题 (H3)
#### 四级标题 (H4)
##### 五级标题 (H5)
###### 六级标题 (H6)

实际效果

一级标题 (H1)

二级标题 (H2)

三级标题 (H3)

四级标题 (H4)

五级标题 (H5)
六级标题 (H6)

⚠️ 排版守则

  1. # 与标题文本之间必须留有一个空格,否则部分解析器会将其视作普通文本或标签。
  2. 在撰写文章或博客时,一级标题(H1)通常会被博客引擎自动分配给文章的“主标题”,因此在正文中建议从二级标题(H2)开始使用,以保证 SEO 结构的正确性。

2. 文本样式 (Emphasis)

通过简单的符号包裹,可以快速改变文字的视觉重点。

语法格式

1
2
3
4
*这是斜体*_这是斜体_
**这是粗体**__这是粗体__
***这是粗斜体***___这是粗斜体___
~~这是删除线~~

实际效果

  • 这是斜体 (使用单星号包裹)
  • 这是粗体 (使用双星号包裹)
  • 这是粗斜体 (使用三星号包裹)
  • 这是删除线 (使用双波浪线包裹)

💡 排版守则
包裹符号与内部文字之间不要留空格。例如,写成 ** 粗体 ** 会导致部分解析器无法正确渲染。如果需要在加粗文字两侧使用标点,标点应当放在包裹符号之外,例如:这是粗体


3. 段落与换行 (Paragraphs & Line Breaks)

在 Markdown 中,普通的单回车换行在最终渲染时通常会被合并为一行(特别是在处理英文或代码段落时)。

换行规则

  1. 分段:两个段落之间需要空一行(即按两次回车)。
  2. 段内换行:在一行的末尾输入两个及以上的空格,然后按回车。
  3. 强制换行:在部分解析器不支持双空格时,可以直接插入 HTML 换行标签 <br>

4. 列表 (Lists)

列表是整理信息的利器,支持无序、有序以及任务列表的嵌套。

(1) 无序列表

使用星号 *、减号 - 或加号 + 作为列表标记,效果完全相同。

语法格式
1
2
3
- 苹果
- 香蕉
- 橘子
实际效果
  • 苹果
  • 香蕉
  • 橘子

(2) 有序列表

使用“数字 + 英文句点 + 空格”表示。

语法格式
1
2
3
1. 第一步:安装依赖
2. 第二步:修改配置
3. 第三步:启动服务
实际效果
  1. 第一步:安装依赖
  2. 第二步:修改配置
  3. 第三步:启动服务

💡 小技巧:即使你把列表的序号全部写成 1.(如 1. A1. B1. C),解析器在渲染时也会自动按照 1, 2, 3 的递增顺序输出。这在调整列表顺序时非常方便。

(3) 列表嵌套

在子列表项前添加 4 个空格(或一个 Tab 键键入的缩进),即可实现多级嵌套列表。

语法格式
1
2
3
4
5
6
7
8
9
10
1. 编程语言
- 编译型
* C++
* Go
- 解释型
* Python
* JavaScript
2. 标记语言
- HTML
- Markdown
实际效果
  1. 编程语言
    • 编译型
      • C++
      • Go
    • 解释型
      • Python
      • JavaScript
  2. 标记语言
    • HTML
    • Markdown

(4) 任务列表 (GFM 扩展)

用于做 TODO 待办清单。[ ] 代表未完成,[x] 代表已完成(注意括号内要有空格)。

语法格式
1
2
3
- [x] 完成 Markdown 基础语法学习
- [ ] 掌握 LaTeX 数学公式输入
- [ ] 独立撰写一篇优雅的排版文章
实际效果
  • 完成 Markdown 基础语法学习
  • 掌握 LaTeX 数学公式输入
  • 独立撰写一篇优雅的排版文章

5. 区块引用 (Blockquotes)

用于引用他人的话、文章片段或特别标注提示信息。在行首添加大于号 > 即可。

语法格式

1
2
3
4
5
> 这是一个普通的单行区块引用。
>
> 引用内部可以包含换行,也可以**嵌套**其他语法:
> - 列表项一
> - [链接](https://example.com)

实际效果

这是一个普通的单行区块引用。

引用内部可以包含换行,也可以嵌套其他语法:

嵌套引用

使用多个 > 可以实现引用嵌套。

语法格式
1
2
3
> 第一层引用
>> 第二层嵌套引用
>>> 第三层嵌套引用
实际效果

第一层引用

第二层嵌套引用

第三层嵌套引用


6. 代码样式 (Code)

这是程序员最爱的功能,Markdown 对代码的支持极其完美。

(1) 行内代码 (Inline Code)

使用单个反引号 ` 包裹代码或专业术语。

语法格式
1
在 Python 中,我们使用 `print()` 函数输出内容,其核心模块是 `sys`
实际效果

在 Python 中,我们使用 print() 函数输出内容,其核心模块是 sys

💡 高阶技巧:如果行内代码中本身就包含反引号,该怎么办?
答:可以使用双反引号包裹,并在两端各留一个空格。例如:``code`` 会被渲染为 `code`

(2) 代码块 (Code Blocks)

使用三个反引号 ``` 包裹多行代码。在起始反引号后面写上编程语言名称(如 javascriptpythonbash 等),可以开启语法高亮。

语法格式
1
2
3
4
5
6
```javascript
function greet(name) {
console.log(`Hello, ${name}!`);
}
greet('Markdown');
```
实际效果
1
2
3
4
function greet(name) {
console.log(`Hello, ${name}!`);
}
greet('Markdown');

链接与图片是网页最基本的元素,它们的语法非常相似,只差一个叹号 !

(1) 超链接

语法为 [链接文本](链接地址 "可选的 Hover 提示标题")

语法格式
1
2
欢迎访问我的 [个人博客](https://blog.iot2045.cn "七月小站")。
也可以直接使用自动链接:<https://blog.iot2045.cn>
实际效果

欢迎访问我的 个人博客
也可以直接使用自动链接:https://blog.iot2045.cn

(2) 引用式链接 (适合长文章)

当一篇文章多次出现相同的链接,或者你希望保持正文极其干净时,可以使用引用式链接。

语法格式
1
2
3
4
我经常使用 [Google][1] 进行搜索,偶尔也会使用 [Baidu][2]。

[1]: https://www.google.com "Google Search"
[2]: https://www.baidu.com "百度一下"
实际效果

我经常使用 Google 进行搜索,偶尔也会使用 Baidu

(3) 插入图片

语法为 ![图片替代文本](图片链接 "可选的 Hover 标题")。替代文本 (Alt Text) 是在图片加载失败或无障碍屏幕阅读器读取时的内容,对 SEO 非常友好。

语法格式
1
![Markdown Logo](https://markdown-here.com/img/icon256.png "Markdown 标志")
实际效果

Markdown Logo

(4) 图片链接 (点击图片跳转)

将图片语法嵌套在超链接的方括号中。

语法格式
1
[![Markdown Logo](https://markdown-here.com/img/icon256.png)](https://blog.iot2045.cn)

二、Markdown 进阶与扩展语法

以下语法属于 GitHub Flavored Markdown (GFM) 或各大主流编辑器(如 Typora、Obsidian、Hexo 渲染器)的扩展规范,能极大地提升排版上限。

1. 表格 (Tables)

表格用于展示结构化数据。使用竖线 | 划分列,使用短横线 - 划分表头与表体。

对齐方式

在分隔线 --- 的左侧、右侧或两侧添加冒号 :,可以改变对应列的对齐方式:

  • :---:左对齐(默认)
  • ---::右对齐
  • :---::居中对齐

语法格式

1
2
3
4
5
| 编号 | 姓名 | 角色定位 | 技能特色 |
| :---: | :--- | :---: | ---: |
| 001 | 叶修 | 全职业散人 | 千机伞、龙抬头 |
| 002 | 苏沐橙 | 枪炮师 | 重火力牵制 |
| 003 | 喻文州 | 术士 | 战术心脏、手速极慢 |

实际效果

编号 姓名 角色定位 技能特色
001 叶修 全职业散人 千机伞、龙抬头
002 苏沐橙 枪炮师 重火力牵制
003 喻文州 术士 战术心脏、手速极慢

💡 表格进阶技巧

  1. 单元格内可以使用行内元素,例如 加粗行内代码超链接
  2. 如果单元格内需要换行,可以使用 HTML 换行标签 <br>。例如:第一行内容<br>第二行内容

2. LaTeX 数学公式 (Math Formulas)

在学术写作、AI 算法分析及工科技术文档中,数学公式必不可少。Markdown 通过集成 KaTeX 或 MathJax 渲染器来支持 LaTeX 格式公式。

(1) 行内公式

使用单美元符号 $ 包裹公式。

语法格式
1
著名的质能方程是 $E = mc^2$,而欧拉恒等式则是 $e^{i\pi} + 1 = 0$。
实际效果

著名的质能方程是 $E = mc^2$,而欧拉恒等式则是 $e^{i\pi} + 1 = 0$。

(2) 块级公式

使用双美元符号 $$ 包裹公式,公式将独立成行并居中展示。

语法格式
1
2
3
正态分布(高斯分布)的概率密度函数公式如下:

$$f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2}$$
实际效果

正态分布(高斯分布)的概率密度函数公式如下:

$$f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2}$$

常用 LaTeX 符号速查表

为了方便你快速上手写公式,以下整理了最常用的数学符号表达法:

效果 LaTeX 语法 说明
$\sum_{i=1}^{n}$ \sum_{i=1}^{n} 求和公式
$\int_{a}^{b}$ \int_{a}^{b} 定积分
$\frac{a}{b}$ \frac{a}{b} 分数
$\sqrt{x}$ \sqrt{x} 根号
$\lim_{x \to \infty}$ \lim_{x \to \infty} 极限
$\alpha, \beta, \pi$ \alpha, \beta, \pi 希腊字母
$\ge, \le, \ne$ \ge, \le, \ne 比较运算符

3. 脚注 (Footnotes)

脚注用于对正文中的特定词汇进行注解,而不会干扰正文的正常阅读。

语法格式

1
2
3
这是一个使用了脚注[^1]的句子。

[^1]: 这里是脚注的具体解释内容,它会自动渲染在页面的最底部。

实际效果

这是一个使用了脚注^1的句子。


4. 上标与下标 (Subscript & Superscript)

部分扩展解析器支持使用波浪线 ~ 包裹表示下标,使用尖角号 ^ 包裹表示上标。

语法格式

1
2
水的化学式是 H~2~O。
2^10^ 的计算结果是 1024。

实际效果

水的化学式是 H2O。
2^10^ 的计算结果是 1024。

💡 兼容性提示:部分基础 Markdown 解析器不支持该语法。如果发现页面上直接显示了符号,可以使用 HTML 的下标 <sub> 和上标 <sup> 标签代替。例如:H<sub>2</sub>O


5. 文本高亮 (Highlight)

用于将重点词句标黄高亮。

语法格式

1
2
这里需要 ==重点记忆== 的部分。
或者使用 HTML 标签:这里需要 <mark>重点记忆</mark> 的部分。

实际效果

这里需要 重点记忆 的部分。


6. HTML 标签混合嵌套 (高阶排版)

Markdown 完全兼容原生 HTML。当你觉得 Markdown 语法有些简陋,无法满足细致排版时,可以直接写 HTML。

(1) 调整图片大小及位置

Markdown 默认图片无法控制大小和居中。我们可以使用 HTML 的 <img> 标签结合 align 或样式实现。

语法格式
1
2
3
4
<div align="center">
<img src="https://markdown-here.com/img/icon256.png" width="120px" alt="居中的Logo">
<p>图1:居中的 Markdown 标志</p>
</div>
实际效果
居中的Logo

图1:居中的 Markdown 标志

(2) 修改文字颜色、字号与字体

通过 <font> 标签可以实现极其丰富的视觉变化。

语法格式
1
2
3
我是 <font color="crimson">红色的文字</font>
我是 <font color="#3b82f6" size="4">蓝色且字号为4的文字</font>
我使用的是 <font face="Microsoft YaHei">微软雅黑字体</font>
实际效果

我是 红色的文字
我是 蓝色且字号为4的文字
我使用的是 微软雅黑字体

(3) 折叠收纳面板 (details & summary)

常用于隐藏大段代码、答案解析或次要参考信息,点击可展开阅读。

语法格式
1
2
3
4
5
6
7
8
<details>
<summary><b>点击查看核心代码实现</b></summary>

```python
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
1
2
3
4
5
6
7
8
9
10

##### 实际效果
<details>
<summary><b>点击查看核心代码实现</b></summary>

```python
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)

三、Markdown 写作美学与规范

“写得出”和“写得优雅”之间,差了一套完善的排版规范。以下是在中文技术写作圈被广泛推崇的最佳实践,能让你的文章瞬间变得专业、高级。

1. 盘古之白(中英文混排空隙)

在撰写文章时,中文与英文、数字、链接之间,应当加入一个半角空格。这能够极大提升长篇大论的可读性,避免视觉黏连。

  • 错误示范:今天在GitHub上学习了Markdown的2^10^个技巧,感觉非常好用。
  • 正确示范:今天在 GitHub 上学习了 Markdown 的 2^10^ 个技巧,感觉非常好用。

💡 如果你使用现代编辑器(如 VS Code)配合相关插件,或者使用 Hexo 的排版优化插件,它们通常会自动为你补全这些空格。但养成良好的书写习惯依然非常重要。

2. 标点符号规范

  • 中文语境下,请使用全角标点符号(如 “” ())。
  • 英文或代码语境下,请使用半角标点符号(如 , . ! ? ; : "" ())。
  • 尤其需要注意:不要在中文句子里使用英文的逗号 , 和句号 .

3. 空行原则 (非常重要)

为了避免各种解析器渲染出奇奇怪怪的错误,请遵循以下空行守则

  1. 标题的前后都必须空一行。
  2. 列表、代码块、引用、表格、公式块的前后,都建议留出至少一个空行。
  3. 如果一个列表项内包含多个段落,段落之间需要缩进 4 个空格,并且有空行分隔。

4. 常见排版避坑指南

  • 坑 1:列表符号后缺少空格。写成 -苹果 会直接渲染成带有短横线的普通文字,一定要写成 - 苹果
  • 坑 2:加粗斜体符号交叉嵌套。例如 **斜粗体*体*,符号没有对称闭合,会导致全局排版崩塌。
  • 坑 3:URL 路径里带有特殊符号(如括号、空格)。此时如果使用 [链接](http://xx(yy).html) 会被解析失败。解决方案:将 URL 进行 URL-encode 编码,或者使用引用式链接。

四、Markdown 优质工具推荐

一款顺手的工具能让写作事半功倍。

  1. Typora (五星推荐)
    • 特点:所见即所得 (WYSIWYG) 实时渲染,排版极为优雅,支持一键导出各种格式。目前为收费软件,但极度物超所值。
  2. VS Code (程序员首选)
    • 特点:配合插件 Markdown All in OneMarkdown Preview Enhanced 以及 Linter,可以搭建出世界上最强大的 Markdown 写作与校验工作流。
  3. Obsidian (知识管理大师)
    • 特点:基于纯文本 Markdown 的本地双链笔记软件,适合构建个人第二大脑和庞大的知识图谱。
  4. Notion (协同与美观兼备)
    • 特点:虽然不是纯粹的 Markdown 编辑器,但其支持绝大多数 Markdown 快捷指令,卡片式块级排版非常适合团队协作。

结语

Markdown 的伟大之处在于它极其简单。你只需要花 20 分钟通读并练习本文的语法,就能掌握这项终身受用的技能。

在未来的写作、代码编写和文档创作中,让手指留在键盘上,让思绪在纯文本间流动。拿起你的编辑器,从写下第一篇 .md 日记开始,开启你的优雅写作之旅吧!

💡 “无他,唯手熟尔。” 快去新建一个文件,把本文的语法自己敲一遍试试看吧!