Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后将其转换为结构化的 HTML(或其他格式)。它的设计哲学是“易读易写”,因此语法非常直观。
以下是 Markdown 语法的详细总结:
1. 标题 (Headings)
使用 # 符号来创建标题。# 的数量决定了标题的级别(从 H1 到 H6)。
# 这是一级标题 (H1)
## 这是二级标题 (H2)
### 这是三级标题 (H3)
#### 这是四级标题 (H4)
##### 这是五级标题 (H5)
###### 这是六级标题 (H6)
渲染效果:
这是一级标题 (H1)
这是二级标题 (H2)
这是三级标题 (H3)
这是四级标题 (H4)
这是五级标题 (H5)
这是六级标题 (H6)
2. 段落 (Paragraphs)
段落由一个或多个连续的文本行组成,它们之间由一个或多个空行分隔。
这是一个段落。
这是同一段落的第二行。
这是另一个段落。
渲染效果:
这是一个段落。
这是同一段落的第二行。
这是另一个段落。
3. 换行 (Line Breaks)
-
软换行 (Soft Break): 单个回车(Enter)通常会被 Markdown 渲染器忽略,视为一个空格。
-
硬换行 (Hard Break): 在行尾添加两个或更多空格,然后回车。或者,有些解析器支持在行尾添加
\符号。
这是第一行
这是第二行 (行尾有两个空格)
这是第三行\
这是第四行 (行尾有反斜杠,部分解析器支持)
渲染效果:
这是第一行
这是第二行 (行尾有两个空格)
这是第三行\
这是第四行 (行尾有反斜杠,部分解析器支持)
4. 强调 (Emphasis)
-
斜体 (Italic): 使用一个星号
*或一个下划线_包裹文本。 -
粗体 (Bold): 使用两个星号
**或两个下划线__包裹文本。 -
粗斜体 (Bold Italic): 使用三个星号
***或三个下划线___包裹文本。
*斜体文本* 或 _斜体文本_
**粗体文本** 或 __粗体文本__
***粗斜体文本*** 或 ___粗斜体文本___
渲染效果:
斜体文本 或 斜体文本
粗体文本 或 粗体文本
粗斜体文本 或 粗斜体文本
5. 列表 (Lists)
5.1 无序列表 (Unordered Lists)
使用星号 *、加号 + 或连字符 - 作为列表项标记。
* 列表项一
* 列表项二
* 嵌套列表项二点一
* 嵌套列表项二点二
* 更深一层
+ 列表项三
- 列表项四
渲染效果:
-
列表项一
-
列表项二
-
嵌套列表项二点一
-
嵌套列表项二点二
- 更深一层
-
- 列表项三
- 列表项四
5.2 有序列表 (Ordered Lists)
使用数字后跟一个点 . 作为列表项标记。数字本身不重要,Markdown 会自动排序。
1. 列表项一
2. 列表项二
1. 嵌套列表项二点一
2. 嵌套列表项二点二
3. 列表项三
渲染效果:
-
列表项一
-
列表项二
-
嵌套列表项二点一
-
嵌套列表项二点二
-
-
列表项三
5.3 任务列表 (Task Lists - GitHub Flavored Markdown)
使用 - [ ] 或 - [x] 来创建待办事项列表。
- [x] 完成任务一
- [ ] 未完成任务二
- [ ] 未完成任务三
渲染效果:
-
完成任务一
-
未完成任务二
-
未完成任务三
6. 链接 (Links)
6.1 行内式链接 (Inline Links)
[链接文本](链接地址 "可选标题")
访问 [Google](https://www.google.com "谷歌搜索")。
渲染效果:
访问 Google。
6.2 参考式链接 (Reference Links)
[链接文本][引用ID]
[引用ID]: 链接地址 "可选标题"
这是一个 [示例链接][1]。
另一个链接是 [百度][baidu]。
[1]: https://www.example.com "示例网站"
[baidu]: https://www.baidu.com
渲染效果:
这是一个 [示例链接][1]。
另一个链接是 [百度][baidu]。
7. 图片 (Images)

图片语法与链接类似,只是在前面多了一个 !。

渲染效果:

8. 代码 (Code)
8.1 行内代码 (Inline Code)
使用反引号 ` 包裹代码。
这是一个 `console.log("Hello, World!");` 的例子。
渲染效果:
这是一个 console.log("Hello, World!"); 的例子。
8.2 代码块 (Code Blocks)
使用三个反引号 ``` 包裹代码块,可以在第一个反引号后指定语言以实现语法高亮。
```python
def hello_world():
print("Hello, Markdown!")
const message = "Hello, JavaScript!";
console.log(message);
**渲染效果:**
```python
def hello_world():
print("Hello, Markdown!")
const message = "Hello, JavaScript!";
console.log(message);
9. 引用 (Blockquotes)
使用 > 符号来创建引用块。
> 这是一段引用文本。
> 可以包含多行。
>
> > 也可以嵌套引用。
> > 嵌套的引用。
渲染效果:
这是一段引用文本。
可以包含多行。
也可以嵌套引用。
嵌套的引用。
10. 分隔线 (Horizontal Rules)
使用三个或更多个连字符 ---、星号 *** 或下划线 ___ 来创建水平分隔线。
---
***
___
渲染效果:
11. 表格 (Tables - GitHub Flavored Markdown)
使用 | 分隔列,使用 --- 分隔表头和表体。冒号 : 可以控制对齐方式。
| 表头一 | 表头二 | 表头三 |
| :----- | :----: | -----: |
| 左对齐 | 居中 | 右对齐 |
| 内容一 | 内容二 | 内容三 |
渲染效果:
| 表头一 | 表头二 | 表头三 |
| :----- | :----: | -----: |
| 左对齐 | 居中 | 右对齐 |
| 内容一 | 内容二 | 内容三 |
12. 删除线 (Strikethrough - GitHub Flavored Markdown)
使用两个波浪线 ~~ 包裹文本。
~~这段文字将被删除~~
渲染效果:
这段文字将被删除
13. 自动链接 (Automatic Links)
Markdown 会自动将 URL 和邮箱地址转换为链接,如果它们被尖括号 <> 包裹。
<https://www.example.com>
<mailto:test@example.com>
渲染效果:
14. 转义字符 (Escaping Characters)
如果想显示 Markdown 语法字符本身,而不是让它被解析,可以在字符前加上反斜杠 \。
\* 这不是一个列表项
\_ 这不是斜体\_
\` 这不是代码\`
渲染效果:
* 这不是一个列表项
_ 这不是斜体_
` 这不是代码`
15. HTML 混合 (HTML Mixing)
Markdown 允许直接在文档中嵌入 HTML 代码。这在 Markdown 不支持某些特定功能时非常有用。
<p style="color: red;">这段文字是红色的。</p>
<br>
<span>这是一个 span 标签。</span>
渲染效果:
<p style="color: red;">这段文字是红色的。</p> <br><span>这是一个 span 标签。</span>
总结与注意事项
-
Markdown 方言 (Flavors): 上述语法大部分是标准 Markdown (CommonMark) 的内容。但有些特性(如表格、任务列表、删除线)是 GitHub Flavored Markdown (GFM) 或其他扩展方言特有的。在不同的 Markdown 解析器中,支持的特性可能有所不同。
-
空格和空行: Markdown 对空格和空行比较敏感。例如,段落之间必须有空行,列表项的缩进也很重要。
-
可读性: Markdown 的核心是可读性。即使不渲染,纯文本的 Markdown 文档也应该易于理解。
-
工具: 有许多 Markdown 编辑器和工具可以帮助你编写和预览 Markdown 文档,例如 Typora, VS Code, Obsidian, Notion 等。
掌握这些语法,你就可以高效地编写各种结构化文档了!