简介
Markdown 是一种轻量级标记语言,排版语法简洁,让人们更多地关注内容本身而非排版。它使用易读易写的纯文本格式编写文档,可与 HTML 混编,可导出 HTML、PDF 以及本身的 .md 格式的文件。因简洁、高效、易读、易写,Markdown 被大量使用,如 GitHub、Wikipedia、简书等。
Markdown 的语法十分简单,常用的标记符号不超过十个,用于日常写作记录绰绰有余,不到半小时就能完全掌握。就是这十个不到的标记符号,却能让人优雅地沉浸式记录,专注内容而不是纠结排版,达到「心中无尘,码字入神」的境界。
基本语法
标题
使用 # 号可表示 1-6 级标题,一级标题对应一个 # 号,二级标题对应两个 # 号,以此类推。
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
段落
段落的前后要有空行,所谓的空行是指没有文字内容的行。若想在段落内换行,可以在上一行末尾插入两个以上的空格然后回车。
这是第一段文字。
这是第二段文字。
换行
在行末插入两个或多个空格,然后按回车键,即可创建一个换行。
这是第一行
这是第二行
强调
Markdown 使用星号(*)和下划线(_)作为强调标记。
粗体:使用两个 * 或 _ 包围文本
**粗体文本**
__粗体文本__
斜体:使用一个 * 或 _ 包围文本
*斜体文本*
_斜体文本_
粗斜体:使用三个 * 或 _ 包围文本
***粗斜体文本***
___粗斜体文本___
引用
在段落开头使用 > 符号 ,然后后面紧跟一个空格符号:
> 这是一段引用文本
引用可以嵌套:
> 这是第一级引用
>> 这是第二级引用
>>> 这是第三级引用
列表
无序列表:使用 -、* 或 + 作为列表标记
- 第一项
- 第二项
- 第三项
* 第一项
* 第二项
* 第三项
+ 第一项
+ 第二项
+ 第三项
有序列表:使用数字并加上 . 号
1. 第一项
2. 第二项
3. 第三项
列表嵌套:在子列表项前添加四个空格或一个制表符
1. 第一项:
- 嵌套的第一个子项
- 嵌套的第二个子项
2. 第二项:
- 嵌套的第一个子项
- 嵌套的第二个子项
代码
行内代码:使用反引号 (`) 包围代码
这是一段带有 `行内代码` 的文本
代码块:使用三个反引号(```)包围代码块,并可以指定语言
```javascript
function add(x, y) {
return x + y;
}
```
分隔线
可以使用三个或更多的星号(*)、减号(-)或下划线(_)单独在一行上创建分隔线:
***
---
___
链接
行内链接:方括号 + 圆括号
[链接文本](https://www.example.com)
带标题的链接:链接标题会在鼠标悬停时显示
[链接文本](https://www.example.com "链接标题")
引用链接:
[链接文本][链接标识]
[链接标识]: https://www.example.com "链接标题"
自动链接:使用尖括号
<https://www.example.com>
链接本地文件:
- 链接本地文件夹:使用相对路径
[进入文件夹](./folder/)
- 链接本地文件:与网络链接类似,使用相对路径或绝对路径
[查看文档](./document.pdf)
[打开图片](/images/example.jpg)
- 链接其他 Markdown 文件:
[阅读相关文档](./related-doc.md)
- 跨目录链接:
[上级目录文件](../other-doc.md)
[子目录文件](./subfolder/doc.md)
注意:链接本地文件的实际效果取决于 Markdown 解析器和查看环境。在某些网络环境中(如 GitHub),本地文件链接可能无法正常工作。
图片
使用感叹号 ! 后接方括号(内为图片替代文本)和圆括号(内为图片URL):

带有链接的图片:
[](链接URL)
添加本地图片:
在 Markdown 中添加本地图片与添加网络图片类似,只需使用相对路径或绝对路径:


解决本地图片无法显示问题:
- 图片文件夹管理: 在 Markdown 文件所在目录创建专门的图片文件夹(如 images),将所有图片集中存放:
- 
- 使用base64编码: 当需要确保图片始终可见时,可以将图片转换为base64编码格式直接嵌入文档:
- 
- 使用相对路径: 确保图片路径与Markdown文档的相对位置正确:
- 


- 使用图床工具: 将本地图片上传到云存储服务,然后使用图片链接。许多Markdown编辑器(如Typora)提供了自动上传图片到图床的功能:
- 
注意:本地图片在不同环境下的显示效果可能有差异,取决于Markdown解析器和查看工具。在分享文档时,使用图床或相对路径是较好的选择。
转义字符
使用反斜杠 \ 来转义特殊字符:
\* 这不是斜体 \*
可以转义的字符包括:
\ 反斜线
` 反引号
* 星号
_ 下划线
{} 花括号
[] 方括号
() 小括号
# 井字号
+ 加号
- 减号
. 英文句点
! 感叹号
扩展语法
表格
使用 | 分隔单元格,使用 - 分隔表头和表体行:
| 表头1 | 表头2 | 表头3 |
| ----- | ----- | ----- |
| 单元格1 | 单元格2 | 单元格3 |
| 单元格4 | 单元格5 | 单元格6 |
效果如下:
表头1 | 表头2 | 表头3 |
单元格1 | 单元格2 | 单元格3 |
单元格4 | 单元格5 | 单元格6 |
设置对齐方式:
| 左对齐 | 居中对齐 | 右对齐 |
| :----- | :------: | -----: |
| 内容1 | 内容2 | 内容3 |
效果如下:
左对齐 | 居中对齐 | 右对齐 |
内容1 | 内容2 | 内容3 |
任务列表
使用 - [ ] 和 - [x] 语法创建任务列表:
- [x] 已完成任务
- [ ] 未完成任务
- [ ] 待办事项
数学公式
行内公式使用单个 $ 包围:
变量 $x$ 的平方是 $x^2$
独立公式使用两个 $ 包围:
$
E = mc^2
$
示例公式:
矩阵示例:
Mermaid 图表
Mermaid 是一种用于生成图表的 Markdown 扩展语法。
流程图:
flowchart TD
A[开始] --> B{判断条件}
B -->|条件1| C[处理1]
B -->|条件2| D[处理2]
C --> E[结束]
D --> E
序列图:
sequenceDiagram
用户->>系统: 发起请求
系统->>数据库: 查询数据
数据库-->>系统: 返回结果
系统-->>用户: 显示结果
类图:
classDiagram
类A <|-- 类B
类A : +int 属性1
类A : +方法1()
类B : +方法2()
甘特图:
gantt
title 项目计划
dateFormat YYYY-MM-DD
section 第一阶段
需求分析 :a1, 2023-01-01, 10d
设计 :a2, after a1, 15d
section 第二阶段
开发 :a3, after a2, 20d
测试 :a4, after a3, 10d
HTML 与 Markdown 混用
许多 Markdown 应用允许在 Markdown 格式文本中使用 HTML 标签,这在需要调整元素属性时非常有用。
这是 红色 文本。
单元格1 | 单元格2 |
HTML 使用注意事项:
- 出于安全原因,并非所有 Markdown 应用都支持在 Markdown 文档中使用 HTML。
- 块级 HTML 元素(如 、
、
、
等)前后必须有空行。
- 块级 HTML 元素的开始和结束标签不应该用制表符或空格缩进。
- 在块级 HTML 标签内不能使用 Markdown 语法。例如
italic and **bold**
将不起作用。最佳实践
- 保持简洁:使用 Markdown 的主要目的是关注内容而非格式。
- 一致性:在整个文档中保持格式一致。
- 段落分隔:使用空行分隔段落,提高可读性。
- 标题层级:合理使用标题层级,不要跳过标题级别。
- 预览检查:经常预览文档,确保格式正确。
- 版本控制:对于重要文档,考虑使用版本控制系统(如 Git)。
- 备份文档:定期备份 Markdown 文件,避免数据丢失。
- 规范注释:使用清晰的注释解释复杂内容。
通过掌握这些 Markdown 语法,您可以创建结构清晰、格式优美的文档,专注于内容创作而非排版格式。Markdown 提供了一种既简单又功能强大的方式来编写各种文档,从简单的笔记到复杂的技术文档都可以轻松应对。