目录
- 一. 前言
- 二. Markdown 标题语法
- 三. Markdown 段落语法
- 四. Markdown 换行语法
- 五. Markdown 强调语法
- 六. Markdown 引用语法
- 七. Markdown 列表语法
- 无序列表
- 有序列表
- 八. Markdown 代码语法
- 九. Markdown 分隔线语法
- 十. Markdown 链接语法
- 十一. Markdown 图片语法
- 十二. Markdown 转义字符语法
- 十三. Markdown 内嵌 HTML 标签
- 十四. Markdown 图表语法
- 总结
一. 前言
Markdown 是一种轻量级标记语言,由约翰·格鲁伯(John Gruber)于2004年创建。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档。Markdown 语法简洁明了,学习成本低,已成为程序员、作家、博客作者等广泛使用的文档编写工具。
二. Markdown 标题语法
标题用于创建文档的结构层次,Markdown 支持两种标题语法:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
# 一级标题 | # 这是H1 | 这是H1 | 使用1-6个#号表示1-6级标题 |
## 二级标题 | ## 这是H2 | 这是H2 | #号后需加一个空格 |
### 三级标题 | ### 这是H3 | 这是H3 | 最多支持六级标题 |
#### 四级标题 | #### 这是H4 | 这是H4 | |
##### 五级标题 | ##### 这是H5 | 这是H5 | |
###### 六级标题 | ###### 这是H6 | 这是H6 | |
标题1\n===== | 标题1\n===== | 标题1 | 另一种语法,仅支持一级和二级 |
标题2\n----- | 标题2\n----- | 标题2 | 用等号或减号下划线表示 |
注意:大多数Markdown解析器要求#号后必须有一个空格。
三. Markdown 段落语法
段落是Markdown文档的基本单位:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
| 直接书写文本 | 这是一个段落。 | 这是一个段落。 | 段落之间用空行分隔 |
| 空行分隔 | 第一段。\n\n第二段。 | 第一段。 第二段。 | 两个段落之间需要空一行 |
| 行尾两个空格 | 行1 \n行2 | 行1 | 行尾加两个空格实现强制换行 |
最佳实践:保持段落简洁,每段3-5句话为宜,使用空行提高可读性。
四. Markdown 换行语法
换行控制文本的换行方式:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
| 行尾两个空格 | 第一行 \n第二行 | 第一行 第二行 | 最常用的换行方式 |
| HTML标签 | 第一行<br>第二行 | 第一行 第二行 | 使用HTML的 标签 |
| 段落分隔 | 第一行\n\n第二行 | 第一行 第二行 | 创建新段落而非简单换行 |
五. Markdown 强调语法
强调用于突出显示文本中的重要内容:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
*斜体* | *这是斜体* | 这是斜体 | 使用单个星号或下划线 |
_斜体_ | _这也是斜体_ | 这也是斜体 | 效果相同 |
**粗体** | **这是粗体** | 这是粗体 | 使用两个星号或下划线 |
__粗体__ | __这也是粗体__ | 这也是粗体 | 效果相同 |
***粗斜体*** | ***粗斜体文本*** | 粗斜体文本 | 三个星号或下划线 |
___粗斜体___ | ___这也是粗斜体___ | 这也是粗斜体 | 效果相同 |
~~删除线~~ | ~~删除的文本~~ | 使用两个波浪线 |
六. Markdown 引用语法
引用用于标注引用的内容或创建注释块:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
> 引用内容 | > 这是一段引用 | 这是一段引用 | 基本引用语法 |
| 多级引用 | > 一级\n>> 二级 | 嵌套引用效果 | 使用多个>号创建嵌套 |
| 引用中其他语法 | > **加粗引用** | 引用中可包含其他格式 | 引用内支持所有Markdown语法 |
七. Markdown 列表语法
列表用于创建有序或无序的项目列表:
无序列表
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
* 项目 | * 苹果\n* 香蕉 | • 苹果 • 香蕉 | 使用星号 |
- 项目 | - 苹果\n- 香蕉 | - 苹果 - 香蕉 | 使用减号(推荐) |
+ 项目 | + 苹果\n+ 香蕉 | + 苹果 + 香蕉 | 使用加号 |
| 嵌套列表 | - 水果\n - 苹果\n - 香蕉 | 嵌套列表效果 | 缩进两个空格创建子列表 |
有序列表
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
1. 项目 | 1. 第一步\n2. 第二步 | 1. 第一步 2. 第二步 | 数字后加点和空格 |
| 自动编号 | 1. 第一步\n1. 第二步 | 1. 第一步 2. 第二步 | 数字可重复,会自动排序 |
| 嵌套有序列表 | 1. 步骤\n 1. 子步骤 | 嵌套有序列表 | 缩进创建子列表 |
八. Markdown 代码语法
代码语法用于显示代码片段或内联代码:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
| `内联代码` | `console.log()` | console.log() | 单个反引号包裹内联代码 |
| ```代码块``` | ```js\nconsole.log()\n``` | 代码块显示 | 三个反引号创建代码块 |
| 缩进代码块 | 缩进4个空格或1个制表符 | 代码块效果 | 传统方式,不推荐 |
| 语法高亮 | ```python\ndef hello():\n print(“Hello”)\n``` | 带高亮的代码 | 指定语言名称 |
常用语言标识:javascript、python、java、html、css、sql、bash等。
九. Markdown 分隔线语法
分隔线用于在文档中创建视觉分隔:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
*** | *** | *** | 三个星号 |
--- | --- | — | 三个减号(常用) |
___ | ___ | ___ | 三个下划线 |
| 前后空行 | 上文\n\n---\n\n下文 | 正确显示分隔线 | 分隔线前后需要空行 |
注意:分隔线符号至少三个,且符号之间可以有空格(* * *)。
十. Markdown 链接语法
链接用于创建超链接:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
[文本](URL) | [百度](https://baidu.com) | 百度 | 基本链接语法 |
[文本](URL "标题") | [百度](https://baidu.com "百度首页") | 带标题的链接 | 鼠标悬停显示标题 |
| 引用式链接 | [百度][1]\n[1]: https://baidu.com | 引用式链接 | 便于管理多个链接 |
| 自动链接 | <https://baidu.com> | https://baidu.com | 尖括号包裹URL |
| 邮件链接 | <example@email.com> | example@email.com | 自动创建邮件链接 |
十一. Markdown 图片语法
图片语法用于插入图像:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
 |  | 显示图片 | 基本图片语法 |
 |  | 带标题的图片 | 鼠标悬停显示标题 |
| 引用式图片 | ![Logo][logo]\n[logo]: logo.png | 引用式图片 | 类似引用式链接 |
| 带链接的图片 | [](full.png) | 可点击的图片 | 图片嵌套在链接中 |
最佳实践:始终提供有意义的替代文本,便于无障碍访问和SEO。
十二. Markdown 转义字符语法
转义字符用于显示Markdown中的特殊符号:
| 语法 | 示例 | 效果 | 说明 |
|---|---|---|---|
\* | \*不是斜体\* | 不是斜体 | 转义星号 |
\_ | \_不是斜体\_ | 不是斜体 | 转义下划线 |
| ``` | `不是代码` | 不是代码 | 转义反引号 |
\[ | \[不是链接\] | [不是链接] | 转义方括号 |
\( | \(不是链接\) | (不是链接) | 转义括号 |
\# | \#不是标题 | #不是标题 | 转义井号 |
\+ | \+不是列表 | +不是列表 | 转义加号 |
\- | \-不是列表 | -不是列表 | 转义减号 |
\. | 1\.不是列表 | 1.不是列表 | 转义点号 |
十三. Markdown 内嵌 HTML 标签
Markdown 支持直接使用HTML标签,扩展格式功能:
| HTML标签 | 示例 | 效果 | 说明 |
|---|---|---|---|
<br> | 第一行<br>第二行 | 强制换行 | 换行标签 |
<hr> | <hr> | 水平线 | 分隔线标签 |
<sup> | X<sup>2</sup> | X2 | 上标 |
<sub> | H<sub>2</sub>O | H2O | 下标 |
<kbd> | <kbd>Ctrl+C</kbd> | Ctrl+C | 键盘按键 |
<mark> | <mark>高亮文本</mark> | 高亮文本 | 高亮文本 |
<details> | <details><summary>详情</summary>内容</details> | 可折叠内容 | 折叠面板 |
<table> | HTML表格语法 | 复杂表格 | Markdown表格功能有限时使用 |
注意:在HTML标签内的内容,Markdown语法将不会被解析。
十四. Markdown 图表语法
Markdown 本身不直接支持图表绘制,但可以通过扩展语法或嵌入外部代码块来创建图表:
| 语法/工具 | 示例 | 效果 | 说明 |
|---|---|---|---|
| Mermaid | ```````mermaid graph TD A[开始] --> B[处理] B --> C[结束] ```` | 生成流程图 | 使用三个反引号包裹,标注语言为mermaid |
| PlantUML | ```````plantuml @startuml Alice -> Bob: 请求 Bob --> Alice: 响应 @enduml ```` | 生成UML图 | 需要支持PlantUML的渲染器 |
| Graphviz | ```````dot digraph G { A -> B B -> C } ```` | 生成关系图 | 使用DOT语言描述图结构 |
| LaTeX 数学公式 | $E = mc^2$或$$ \sum_{i=1}^n i = \frac{n(n+1)}{2} $$ | 数学公式 | 行内公式用单,块级公式用双 ,块级公式用双,块级公式用双 |
| 表格扩展 | 使用HTML<table>标签 | 复杂表格 | Markdown基础表格功能有限时可使用HTML |
注意:图表功能需要渲染器支持(如GitHub、Typora、VS Code插件等),并非所有Markdown解析器都支持。
总结
Markdown 语法简洁而强大,通过上述表格可以快速掌握各种语法元素的使用方法。实际写作时,建议:
- 保持一致性:选择一种风格并坚持使用
- 适当使用空格:提高可读性
- 善用代码块:展示代码时使用语法高亮
- 添加图片替代文本:提高可访问性
- 预览效果:写作过程中经常预览最终效果
随着实践的增加,这些语法将成为您的第二本能,让文档编写变得更加高效和愉快。