Markdown语法详细解析 从标题列表加粗斜体到代码块表格链接图片 一篇文章帮你全部掌握 让文档排版变得简单高效
你是不是也曾经这样?在写文档的时候,打开Word,设置标题样式,调整字体大小,插入图片,排版表格……一顿操作猛如虎,结果格式还乱成一锅粥。更别提在不同的平台之间复制粘贴,格式全都没了。
今天我就要给你介绍一个神奇的工具——Markdown。它就像是一个”简单到离谱”却又”强大到惊人”的排版神器,学会之后,你写文档的速度和美观程度都会直线飙升。
别担心,这玩意儿一点都不难,就像你在聊天时用的加粗和斜体一样自然。咱们一步步来,保证你看完就能上手。
一、先来个认识:Markdown到底是什么?
Markdown是一种轻量级标记语言,简单来说就是:你用键盘上最容易打出来的符号,就能给文字”加特效”。不需要鼠标点来点去,不需要研究各种格式菜单,纯打字就能完成排版。
它的发明者John Gruber在2004年创造出它,初衷是让写作回归纯粹——”只管写,格式交给符号”。而现在,Markdown已经成了程序员、写作者、科研人员、产品经理最爱的文档格式之一。
为什么这么流行?因为它有几个让人无法拒绝的优点:
- 通用性极强:GitHub、知乎、公众号、Notion、飞书、Typora、VS Code……几乎所有平台都支持
- 跨平台无缝切换:写一次,到处都能用,格式不会乱
- 专注写作:不用分心去调样式,思路不会被打断
- 纯文本存储:.md文件在任何电脑上都能打开,不用担心软件版本兼容问题
二、标题:用#来定级,最多六级
标题是文档的骨架。在Markdown里,你只需要在文字前面加1到6个#号,就能分别对应一级到六级标题。
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题
显示效果就像这样:
这是一级标题
这是二级标题
这是三级标题
这是四级标题
这是五级标题
这是六级标题
💡 小贴士:
#后面一定要跟一个空格,不然有些解析器会识别不出来。比如#标题可能显示不正常,但# 标题就没问题。
如果你想要更”复古”的写法,还可以用下划线的方式(这种方式在早期的Markdown里很流行):
一级标题
========
二级标题
--------
不过现在大多数人都是用#号的方式,更直观也更常用。
三、文字样式:加粗、斜体、删除线
在聊天软件里,你可能经常加粗或者斜体文字。Markdown里实现这个功能,就像玩一样简单。
加粗
用两个星号或者两个下划线把文字包起来:
**这是加粗的文字**
__这也是加粗的文字__
效果:这是加粗的文字 / 这也是加粗的文字
斜体
用一个星号或者一个下划线包起来:
*这是斜体的文字*
_这也是斜体的文字_
效果:这是斜体的文字 / 这也是斜体的文字
加粗+斜体
想要又粗又斜?用三个星号:
***又粗又斜的文字***
效果:又粗又斜的文字
删除线
用两个波浪号:
~~这是被删除的文字~~
效果:这是被删除的文字
行内代码
用反引号(就是键盘左上角那个键,和波浪号~在一个键上):
这是一个行内代码示例:`console.log('Hello World')`
效果:这是一个行内代码示例:console.log('Hello World')
💡 注意:反引号里面的内容会被当作代码处理,所以代码里如果有反引号,就用两个反引号来嵌套,或者用HTML的
`实体。
四、段落和换行:有时候简单反而最难
段落在Markdown里最简单——你只需要在文字之间空一行就行。
这是第一段。
这是第二段。
这是第三段。
效果:
这是第一段。
这是第二段。
这是第三段。
那换行呢?在两段之间加两个空格,然后按回车:
这是一行
这是第二行
效果:
这是一行
这是第二行
或者,直接空一行就是一个新段落。很多人这里容易搞混,记住:两个空格+回车 = 换行,空一行 = 新段落。
五、列表:有序和无序都搞定
无序列表
用*、+或-都可以,效果一样,选你最顺眼的:
* 苹果
* 香蕉
* 橙子
+ 苹果
+ 香蕉
+ 橙子
- 苹果
- 香蕉
- 橙子
效果:
- 苹果
- 香蕉
- 橙子
💡 小技巧:如果你想要列表后面跟一段说明文字,直接换行然后多缩进几个空格就行:
> * 苹果 > 这是苹果的描述,说明它很好吃 > * 香蕉 > 香蕉富含钾元素 > ``` ### 有序列表 用数字加点: ```markdown 1. 第一步 2. 第二步 3. 第三步
效果:
- 第一步
- 第二步
- 第三步
💡 冷知识:有序列表的数字其实不重要!你写成
3. 第一步1. 第二步5. 第三步,显示出来还是1、2、3。不过为了可读性,建议还是按顺序写。
列表嵌套
想要多级列表?把子项多缩进几个空格就行:
1. 水果
- 苹果
- 香蕉
- 橙子
2. 蔬菜
- 白菜
- 萝卜
效果:
- 水果
- 苹果
- 香蕉
- 橙子
- 蔬菜
- 白菜
- 萝卜
六、引用:让文字”缩进”说话
引用用>符号,就像你在写信时写的”他说:”那样:
> 这是一段引用文字
> 它可以多行
> 每一行前面加一个>
效果:
这是一段引用文字 它可以多行 每一行前面加一个>
引用里套引用
> 第一层引用
> > 第二层引用
> > > 第三层引用
效果:
第一层引用
第二层引用
第三层引用
引用里放其他内容
引用里面也可以放列表、代码块、甚至是其他引用:
> 这是一个复杂的引用
>
> 里面可以放:
> - 列表项
> - 更多列表项
>
> 也可以加**加粗**和`代码`。
效果:
这是一个复杂的引用
里面可以放:
- 列表项
- 更多列表项
也可以加加粗和
代码。
七、代码块:程序员的最爱
代码块是Markdown里非常实用的功能,既能显示单行代码,也能展示大段的多行代码。
行内代码
前面已经讲过了,用单个反引号:
运行命令:`npm install`
多行代码块
用三个反引号把代码包起来,还可以在开头那个反引号后面加上语言名称,这样就能实现语法高亮:
```javascript
function greet(name) {
console.log(`Hello, ${name}!`);
}
greet('World');
```
显示效果(假设支持语法高亮):
function greet(name) {
console.log(`Hello, ${name}!`);
}
greet('World');
常用语言标识
```python
print("Hello, World!")
```
```java
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
```
```html
<div class="container">
<p>Hello World</p>
</div>
```
```css
.container {
color: #333;
font-size: 16px;
}
```
```bash
git push origin main
```
```sql
SELECT * FROM users WHERE active = 1;
```
```markdown
# 这是Markdown代码
```
💡 重要提示:如果你的代码里本身包含三个反引号,那就用四个反引号来包裹,以此类推。就像洋葱一样,一层包一层。
八、链接:把文字变成 clickable 的宝藏
链接是网页的基石,Markdown里创建链接有两种常见方式。
行内式链接
[链接文字](https://www.example.com "链接标题")
效果:链接文字
双引号里的内容是鼠标悬停时显示的标题,可以省略:
[访问我的GitHub](https://github.com)
引用式链接
如果你有很多链接,或者链接文字很长,用引用式会更整洁:
[我的博客][1]
[1]: https://www.example.com "我的博客地址"
效果:[我的博客][1]
💡 冷知识:引用式链接的标签可以不只是数字,也可以是文字:
> [我的博客][blog] > > [blog]: https://www.example.com > ``` ### 自动链接 如果你只想显示URL本身,又希望它是可点击的,用尖括号包起来: ```markdown <https://www.example.com>
链接图片
链接和图片可以组合使用,点击图片跳转到指定链接:
[](https://example.com)
九、图片:一图胜千言
图片的语法和链接非常像,只是在前面加了一个!:

比如:

效果(如果图片能加载):一只可爱的小猫
💡 为什么需要”描述文字”:
- 当图片加载失败时,会显示这段文字
- 对屏幕阅读器等辅助技术友好
- 在GitHub等平台上,这段文字还会作为alt文本显示
图片和链接组合
[https://example.com]
引用式图片
和链接一样,图片也可以用引用式:
![一只小猫][cat]
[cat]: https://example.com/cat.jpg "可爱的小猫"
十、表格:数据展示的神器
表格可能是Markdown里最”复杂”但也最实用的语法之一。学会后,你再也不用在文档里贴Excel截图了。
基本表格
用|分隔列,用---分隔表头:
| 姓名 | 年龄 | 城市 |
| ---- | ---- | ---- |
| 张三 | 25 | 北京 |
| 李四 | 30 | 上海 |
| 王五 | 28 | 广州 |
效果:
| 姓名 | 年龄 | 城市 |
|---|---|---|
| 张三 | 25 | 北京 |
| 李四 | 30 | 上海 |
| 王五 | 28 | 广州 |
对齐方式
在分隔线的冒号可以控制列的对齐方式:
| 左对齐 | 居中对齐 | 右对齐 |
| :----- | :------: | -----: |
| 内容 | 内容 | 内容 |
效果:
| 左对齐 | 居中对齐 | 右对齐 |
|---|---|---|
| 内容 | 内容 | 内容 |
💡 记忆方法:冒号在哪边就朝哪边对齐。左边有冒号就是左对齐,两边都有就是居中,右边有就是右对齐。
表格里的其他元素
表格里也可以放加粗、斜体、代码、链接和图片:
| 功能 | 语法 | 示例 |
| ---- | ---- | ---- |
| 加粗 | `**文字**` | **重要** |
| 斜体 | `*文字*` | *强调* |
| 链接 | `[文字](url)` | [点击](#) |
效果:
| 功能 | 语法 | 示例 |
|---|---|---|
| 加粗 | **文字** |
重要 |
| 斜体 | *文字* |
强调 |
| 链接 | [文字](url) |
点击 |
合并单元格?
标准Markdown不支持表格合并单元格。如果你真的需要,可以用HTML的<table>标签来写,或者用第三方扩展。不过在绝大多数场景下,标准表格已经够用了。
十一、分割线:区分内容区块
用三个或更多的-、*或_来创建水平分割线:
---
效果:
或者:
***
___
效果都是一样的。分割线前后各空一行,效果更佳。
十二、特殊字符:当你需要它们的时候
有时候你想显示Markdown的符号本身,而不是让符号被解析。这时候就需要用反斜杠来转义:
\*这不是斜体\*
\# 这不是标题
\`这不是代码\`
效果:
*这不是斜体* # 这不是标题 `这不是代码`
常见的需要转义的字符:\ * _ { } [ ] ( ) # + - . ! |
💡 小技巧:如果你不确定某个符号是否需要转义,直接试试。不确定的时候,加个反斜杠永远不会出错。
十三、HTML混排:Markdown不够用时
虽然Markdown已经很强大了,但有时候你确实需要更精细的控制。这时候可以直接在Markdown里写HTML,大部分情况下是兼容的:
<p style="color: red;">红色的文字</p>
<center>居中的文字</center>
<details>
<summary>点击展开</summary>
这是隐藏的内容
</details>
<kbd>Ctrl</kbd> + <kbd>C</kbd>
效果:
红色的文字
点击展开
这是隐藏的内容Ctrl + C
💡 注意:不是所有平台都支持HTML混排。GitHub支持大部分HTML标签,但有些平台(比如某些论坛)可能会过滤掉HTML。写之前先确认一下目标平台的支持情况。
十四、任务列表:TODO清单的新姿势
GitHub风格的Markdown还支持任务列表,就是那种带勾选框的列表:
- [ ] 待办事项1
- [ ] 待办事项2
- [x] 已完成事项
- [x] 另一个完成项
效果:
- [ ] 待办事项1
- [ ] 待办事项2
- [x] 已完成事项
- [x] 另一个完成项
💡 提示:任务列表需要平台支持(GitHub、GitLab、Notion、飞书等都支持)。纯Markdown解析器可能只会显示普通的无序列表。
十五、实战:把你的知识串起来
现在你已经学会了所有基础语法,来写一段完整的内容试试吧:
# 我的第一份Markdown文档
欢迎来到我的文档!下面是一些基本内容的演示。
## 为什么学习Markdown?
Markdown让排版变得简单高效:
- **上手快**:几个符号就能搞定排版
- **通用性强**:几乎所有平台都支持
- **专注写作**:不用分心调格式
## 代码示例
### Python示例
```python
def hello_world():
print("Hello, Markdown!")
JavaScript示例
const message = "Hello, Markdown!";
console.log(message);
数据对比
| 特性 | Markdown | Word |
|---|---|---|
| 学习成本 | 低 | 中 |
| 跨平台 | ✅ | ❌ |
| 版本控制 | ✅ | ❌ |
| 纯文本 | ✅ | ❌ |
一些引用
“任何傻瓜都能写出计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。” — Martin Fowler
下一步
- [ ] 阅读Markdown官方规范
- [ ] 在你的第一个项目README中使用Markdown
- [x] 完成本文档的阅读
最后更新:2024年
---
## 十六、常见踩坑指南:这些坑我帮你踩过了
### 坑1:空格的重要性
```markdown
#标题 ← 错误,#后面没有空格
# 标题 ← 正确
坑2:列表后的内容
1. 第一步
第二步的内容
需要继续缩进
2. 第三步
很多人在这里会忘记缩进,导致格式错乱。记住:列表项下面的内容要缩进,通常4个空格或1个Tab。
坑3:代码块里的特殊字符
如果你在代码块里写了`(三个反引号),代码块就会提前结束。解决方法:
- 用四个反引号包裹
- 或者避免在代码里写反引号
坑4:图片路径问题
相对路径和绝对路径要搞对:
 ← 相对路径
 ← 绝对路径
坑5:表格列数不一致
| A | B | C |
|---|---|---|
| 1 | 2 | ← 少了一列,可能出问题
保证每一行的列数一致,用空单元格| |来填补。
十七、推荐工具:工欲善其事,必先利其器
学会语法只是第一步,选对工具能让你的效率翻倍:
| 工具 | 类型 | 特点 | 适用平台 |
|---|---|---|---|
| Typora | 编辑器 | 所见即所得,体验极佳 | Win/Mac/Linux |
| VS Code + 插件 | 编辑器 | 免费,功能强大,插件丰富 | 全平台 |
| Obsidian | 笔记软件 | 双向链接,知识库管理 | 全平台 |
| Notion | 在线协作 | 团队协作,数据库强大 | 网页/移动端 |
| 飞书文档 | 在线协作 | 国内使用,协作方便 | 网页/移动端 |
| GitHub | 代码托管 | README必备技能 | 网页 |
💡 我的建议:刚开始学的话,用Typora最简单,打开就能写,效果立竿见影。有程序员背景的话,VS Code是不错的选择。团队协作就用Notion或飞书。
十八、总结:你现在已经掌握了Markdown的核心
回顾一下我们学过的内容:
基础元素:标题(#)、段落、换行
文本样式:加粗(**)、斜体(*)、删除线(~~)、行内代码(`)
列表:无序(-/*/+)、有序(1.)、嵌套、任务列表(- [ ])
引用:单行引用(>)、多层引用
媒体:链接([text](url))、图片()
代码:行内代码、多行代码块()、语法高亮
表格:基本表格、对齐方式
分隔:水平分割线(---)
进阶:HTML混排、特殊字符转义
这些加起来,你已经能应付90%的日常写作场景了。剩下的10%,要么是特殊需求(需要HTML),要么是平台特有的扩展语法(比如GitHub的emoji、任务列表等)。
Markdown的精髓不在于记住所有语法,而在于理解它的哲学:用最简单的方式表达意图。你想让文字粗一点?加两个星号。你想插入图片?加一个感叹号。就这么简单。
现在,打开你的编辑器,写一段Markdown试试。从给自己的一份TODO清单开始,或者写一份个人简介。写几遍之后,你会发现——这玩意儿真的停不下来。
祝写作愉快!🎉
