基础语法

Markdown 有诸多“方言”,本文档中的语法规则适用于大多数 Markdown 编辑器,但不保证适用于所有 Markdown 编辑器。

撰写文档时应习惯在特殊符号与内容之间加入空格,以避免部分 Markdown 编辑器中符号与内容之间的渲染效果不同或文本中产生冲突。

标题

在一段文本前面加 # 号,可以将其转换为标题。

Markdown
  # 一级标题
  ## 二级标题
  ### 三级标题

标题的级别由 # 号的数量决定,一级标题对应一个 # 号,二级标题对应两个 # 号,以此类推,最多支持六级标题。

# 号与标题文本之间需要有一个空格,否则会被解析为普通文本或其他内容。

段落

与传统的文本编辑软件不同,Markdown 中段落并不是由换行分隔的,而是由一个或多个空行分隔的。

Markdown
  这是一句话。
  这是另一句话。

  这是另一个段落

这是一句话。 这是另一句话。

这是另一个段落

如果要在段落中强制换行,可以在行尾插入至少两个空格。

Markdown 中的文本一般情况下不进行缩进,所有文本均顶格。

文字格式

Markdown 使用星号(*)和下划线(_)作为强调字词的标记符号。

强调符号与文段中的文字之间需要有一个空格,否则可能被解析为普通文本或其他内容。
请将 * 作为首选的强调符号,避免部分 Markdown 编辑器中星号(*)和下划线(_)的渲染效果不同或文本中产生冲突。

斜体(Italic)

使用一个星号(*)或下划线(_)将文本包围起来,可以用斜体来突出显示文本。

Markdown
  这是一段 *斜体* 演示

  这是一段 _斜体_ 演示

这是一段 斜体 演示

这是一段 斜体 演示

粗体(Bold)

使用两个星号(**)或下划线(__)将文本包围起来,可以用粗体来突出显示文本。

Markdown
  这是一段 **粗体** 演示

  这是一段 __粗体__ 演示

这是一段 粗体 演示

这是一段 粗体 演示

粗斜体(Bold & Italic)

使用三个星号(***)或下划线(___)将文本包围起来,可以同时使用粗体和斜体来突出显示文本。

Markdown
  这是一段 ***粗斜体*** 演示

  这是一段 ___粗斜体___ 演示

这是一段 粗斜体 演示

这是一段 粗斜体 演示

链接

Markdown 中的链接语法非常简单,只需将 URI 链接地址放在尖括号(<>)中。

Markdown
  <https://shift2modern.dev/>

  <mail@example.com>
尖括号(<>)中的链接地址可以是任意的 URI,可以是 http://https://ftp:// 等协议,也可以是电子邮件地址。

超链接

如果想像 Word 中为内容添加超链接,可以使用以下语法:

Markdown
  [Shift2Modern](https://shift2modern.dev)

可以在链接地址后面添加一个空格,然后再添加使用双引号("")包围起来的文字来设定链接的标题。

[Shift2Modern](https://shift2modern.dev "Shift2Modern")

将鼠标悬停在链接上,会显示 Shift2Modern 这个标题。

Shift2Modern

不同 Markdown 编辑器处理链接中空格的方式不同,所以人们习惯于用%20来代替空格。
例如,https://shift2modern.dev/Shift2Modern%20Bloghttps://shift2modern.dev/Shift2Modern Blog 是等价的。

链接的修饰

超链接的文字可以使用 Markdown 中的文字格式语法进行修饰。

引用链接

如果想要在文档中多次使用同一个链接,可以使用引用链接的方式。

Markdown
  [Shift2Modern][1]

  [Shift2Modern2][1]

  [1]: https://shift2modern.dev
在引用链接的实际链接处,需要在方括号([])后面加上冒号(:)和一个空格,否则可能会被解析为普通文本。

图片

Markdown 中的图片语法与链接语法非常相似,只需在感叹号(!)后面加上方括号([]),然后将图片的 URI 地址相对路径 放在小括号(())中。

使用相对路径时请不要忘记同时上传图片文件。

例如:

![](https://r2.shift2modern.dev/shi-sheng-o_Zjjv2PJ9o-unsplash.jpg)

Photo by Shi Sheng on Unsplash

Markdown 原生不支持图片大小调节,如有需要请使用 HTML标签

如需给图片添加链接,只需要将 整个 图片代码再使用方括号([])包裹,将链接放在最后新添加的小括号(())中即可。

就像这样:

[![](https://r2.shift2modern.dev/shi-sheng-o_Zjjv2PJ9o-unsplash.jpg)](https://unsplash.com/photos/o_Zjjv2PJ9o)

Photo by Shi Sheng on Unsplash

代码

Markdown 提供了两种方式来标记代码,分别是行内代码和代码块。

Markdown
  这是一段`行内代码`演示

  ```
  这是一段代码块演示
  ```

这是一段行内代码演示

这是一段代码块演示
如果行内代码中包括了反引号(`),可以将其用两个反引号(` `)包裹起来。
代码块除了用三个反引号(```)包裹外,还可以使用三个波浪号(~~~)包裹。

引用

在一段文本前面加上 > 符号,可以将其转换为引用。

Markdown
  > 这是一段引用
  >> 这是一段嵌套引用

这是一段引用

这是一段嵌套引用

表格

Markdown 中表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。

Markdown
  | 表头   | 表头   |
  | ------ | ------ |
  | 单元格 | 单元格 |
  | 单元格 | 单元格 |
表头表头
单元格单元格
单元格单元格

表格可以使用冒号(:)来定义对齐方式,左对齐在分割符左侧添加冒号(:),右对齐在分割符右侧添加冒号(::),居中在分割符两侧侧添加冒号(:)。

Markdown
  | A      |   B   |      C |
  | :----- | :---: | -----: |
  | 左对齐 | 居中  | 右对齐 |
ABC
左对齐居中右对齐

分割线

Markdown 中的分割线语法非常简单,只需在一行中使用三个以上的星号(***)、减号(---)或下划线(___)。

Markdown
  这是一种分割线演示
  ***
  这是一种分割线演示

  ---
  这是一种分割线演示
  ___

这是一种分割线演示


这是一种分割线演示


这是一种分割线演示


减号分割线下添加了一行空行,因为文字后一行使用连续的三个减号(---)或等号(===)会被解析为标题。

列表

Markdown 支持有序列表和无序列表。

无序列表

无序列表使用星号(*)、加号(+)或减号(-)作为列表标记。

Markdown
  * 无序列表
  * 无序列表
  * 无序列表
  + 无序列表
  + 无序列表
  + 无序列表
  - 无序列表
  - 无序列表
  - 无序列表
  • 无序列表
  • 无序列表
  • 无序列表
  • 无序列表
  • 无序列表
  • 无序列表
  • 无序列表
  • 无序列表
  • 无序列表
对于同一个列表,列表标记的使用应该保持一致。

有序列表

有序列表使用数字接着一个英文句点作为列表标记。

Markdown
  1. 有序列表
  2. 有序列表
  3. 有序列表
  1. 有序列表
  2. 有序列表
  3. 有序列表
数字不必按照顺序,也可重复使用,但列表启示的数字应该是 1。
建议使用数字顺序或重复 1 作为列表标记。

列表中可以嵌套列表或以上介绍过的语法。

转义字符

Markdown 语法中的一些字符具有特殊的含义,如果需要在文本中使用这些字符,需要使用反斜杠(\)进行转义。

由两个字符需要特殊处理:<&

< 符号用于起始标签,& 符号则用于标记 HTML 实体,如果是想要使用这些符号,必须要使用实体的形式,如:&lt;&amp;

内嵌 HTML 标签

Markdown 语法中的一些标签无法满足需求,这时可以使用 HTML 标签来实现。

对于 HTML 的块级元素 <div><table><pre><p>,请在其前后使用空行(blank lines)与其它内容进行分隔。尽量不要使用制表符(tabs)或空格(spaces)对 HTML 标签做缩进,否则将影响格式。

在 HTML 块级标签内不能使用 Markdown 语法。例如 <p>*italic* and **bold**</p> 将不起作用。