Markdown是一种轻量级的标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML。以下是Markdown主要的语法:
一、基本语法
标题
- 使用
#
表示标题,#
的数量表示标题的级别。例如:# 一级标题
、## 二级标题
。 - 也可以使用
=
和-
分别表示一级和二级标题(这种用法不太常见)。
- 使用
段落
- Markdown中段落没有特殊的格式,直接编写文字即可。段落的换行通常需要使用两个空格加上回车,或者在文本之间添加一个空行。
字体
- 粗体:使用两个
**
或__
将内容包起来,如**粗体文本**
或__粗体文本__
。 - 斜体:使用一个
*
或_
将内容包起来,如*斜体文本*
或_斜体文本_
。 - 粗斜体:使用三个
***
或___
将内容包起来,如***粗斜体文本***
或___粗斜体文本___
。 - 删除线:使用两个
~~
将内容包起来,如~~删除线文本~~
。 - 下划线:可以通过HTML标签
<u>
实现,如<u>带下划线文本</u>
。
- 粗体:使用两个
列表
- 无序列表:使用
*
、+
或-
符号加上空格来表示。 - 有序列表:使用数字加
.
符号来表示。 - 列表还可以进行嵌套,通过在子列表项前添加额外的空格或Tab键来实现。
- 无序列表:使用
分隔线
- 可以使用三个或以上的
*
、-
或_
来表示分隔线。
- 可以使用三个或以上的
链接
- 行内形式:
[链接文字](链接地址 "标题")
,如[百度](https://www.baidu.com "百度首页")
。 - 参考形式:
[链接文字][链接名称]
,然后在文档末尾添加[链接名称]: 链接地址 "标题"
,如[百度][1]
和[1]: https://www.baidu.com "百度首页"
。
- 行内形式:
图片
- 插入图片的语法与链接类似,但需要在前面加上一个
!
。 - 行内形式:

。 - 参考形式:
![图片描述][图片名称]
,[图片名称]: 图片地址 "图片标题"
。
- 插入图片的语法与链接类似,但需要在前面加上一个
表格
- 使用
|
来分隔不同的单元格,使用-
来分隔表头和其他行。 - 可以设置表格的对齐方式,如左对齐、居中、右对齐。
- 使用
代码
- 单行代码:使用反引号
`
将代码包裹起来,如`print('Hello World!')`
。 - 代码区块:使用三个反引号
```
包裹一段代码,并可以指定语言,如:print('Hello World!')
- 单行代码:使用反引号
引用
- 使用
>
符号来表示引用,如:> 这是一个引用
。 - 还可以进行嵌套引用,如:
>> 这是一个嵌套的引用
。
- 使用
任务列表
- 使用
- [ ]
表示未完成的任务,使用- [x]
表示已完成的任务。
- 使用
二、扩展语法
数学公式
- 行内公式:使用单个
$
符号包裹公式,例如:$E=mc^2$
显示为$E=mc^2$。 - 独立公式(行间公式):使用两个
$$
符号包裹公式,例如:$$E=mc^2$$
。
$$E=mc^2$$ - 可以使用
\boxed
命令给公式加一个边框,例如:$$\boxed{E=mc^2}$$
。 - 在Markdown中,
# $ & ~ _ ^ \ { } %
等字符具有特殊意义,如果需要在公式中使用这些字符,需要进行转义,即在字符前加上\
。 - 支持上标、下标、根号、分数、括号、常规运算符、特殊运算符、箭头、省略号等数学符号和命令。
- 行内公式:使用单个
图表绘制
- 流程图绘制:可以使用Mermaid等语法绘制流程图,用于描述业务流程、算法流程等。
- 甘特图绘制:使用Mermaid等语法绘制甘特图,用于呈现项目各阶段的时间安排和先后顺序。
- 时序图绘制:可以使用PlantUML等语法绘制时序图,用于描述不同对象之间的交互顺序和消息传递情况。
HTML元素
- Markdown支持内联HTML,这意味着可以在Markdown文档中直接使用HTML标签。
脚注
- 脚注是对文本的补充说明,一些Markdown解析器支持脚注功能。
折叠内容
- 一些Markdown编辑器支持折叠内容功能,允许隐藏或展开部分文本。
定义列表
- 定义列表在标准的Markdown中不被支持,但在一些变体中可以使用,格式为术语在前,后面紧跟冒号,然后是对该术语的解释。
这些语法使得Markdown能够创建格式丰富、结构清晰的文档,并且这些文档可以很容易地被转换成HTML格式进行展示。