Skip to content

Markdown 指南

什么是 Markdown?

Markdown 是一种轻量级标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。Markdown 于 2004 年由 John Gruber(约翰·格鲁伯)创建,现已成为世界上最受欢迎的标记语言之一。

为什么使用 Markdown?

  • Markdown 可用于所有内容。人们用它来创建网站、文档、笔记、书籍、演示文稿、电子邮件和技术文档等。
  • Markdown 是可移植的。包含 Markdown 格式文本的文档几乎可以使用任何应用程序打开。如果你不喜欢当前使用的 Markdown 应用程序,则可以将 Markdown 文档使用另一个文本编辑器打开。这与像 Microsoft Word 这样的文字处理应用程序形成鲜明对比,这些应用程序将你的内容锁定为专有文件格式。
  • Markdown 是独立于平台的。你可以在 Windows、MacOS、Linux、Android 和 iOS 等操作系统上创建 Markdown 格式的文本。还有一些基于 Web 的应用程序同样也支持编写 Markdown。
  • Markdown 无处不在。GitHub、Gitee 等网站和博客园、简书等博客平台都支持 Markdown,许多基于桌面和 Web 的应用程序都支持它。

如何使用 Markdown?

学习 Markdown 语法不会花很长时间,一旦你知道如何使用它,就可以在任何地方使用 Markdown 进行书写。在 Markdown 中书写时,文档存储在以 .md.markdown 为扩展名的纯文本文件中。

Markdown 格式语法的首要设计目标是使其尽可能易读易写。

Markdown 基本语法

几乎所有的 Markdown 应用程序都支持基本语法。不同的 Markdown 应用程序可能存在细微的变化和差异。

标题

要创建标题,请在文本前面添加井号 # 并缩进一个或多个空格,井号数量对应标题级别,最高六级。

MarkdownHTMLOutput
# 一级标题<h1>一级标题</h1>

一级标题

## 二级标题<h2>二级标题</h2>

二级标题

### 三级标题<h3>三级标题</h3>

三级标题

#### 四级标题<h4>四级标题</h4>

四级标题

##### 五级标题<h5>五级标题</h5>
五级标题
###### 六级标题<h6>六级标题</h6>
六级标题

段落

要创建段落,请生成一行或多行空白行。

MarkdownHTMLOutput
这是一个段落。

这是另外一个段落。
<p>这是一个段落。</p>

<p>这是另外一个段落。</p>

这是一个段落。

这是另外一个段落。

换行

要创建换行,请在文本后面缩进两个或多个空格,然后换行。

MarkdownHTMLOutput
这是一行。  
这是另外一行。
这是一行。
<br>
这是另外一行。
这是一行。
这是另外一行。

强调

可以使用粗体和斜体来强调文本。

粗体

要创建粗体文本,请在文本两边添加两个星号 ** 或两个下划线 __

MarkdownHTMLOutput
我喜欢**粗体文本**。我喜欢<b>粗体文本</b>。我喜欢粗体文本
我喜欢 __粗体文本__。我喜欢<b>粗体文本</b>。我喜欢 粗体文本

斜体

要创建斜体文本,请在文本两边添加一个星号 * 或一个下划线 _

MarkdownHTMLOutput
我喜欢*斜体文本*。我喜欢<i>斜体文本</i>。我喜欢斜体文本
我喜欢 _斜体文本_。我喜欢<i>斜体文本</i>。我喜欢 斜体文本

粗体和斜体

要同时使用粗体和斜体强调文本,请在文本两边添加三个星号 *** 或三个下划线 ___

MarkdownHTMLOutput
我喜欢 ***粗体和斜体文本***。我喜欢<b><i>粗体和斜体文本</i><b>。我喜欢 粗体和斜体文本
我喜欢 ___粗体和斜体文本___。我喜欢<b><i>粗体和斜体文本</i><b>。我喜欢 粗体和斜体文本

水平线

要创建水平线,请在一行上使用三个或多个星号 *、减号 - 或下划线 _

Markdown

md
***
---
___

Output




代码

要将文本表示为代码,请在文本两边添加一个反引号 `

MarkdownHTMLOutput
在 Markdown 文档中使用 `code`。在 Markdown 文档中使用 <code>code</code>。在 Markdown 文档中使用 code

反引号转义

如果代码中包含一个或多个反引号 `,则可以使用两个反引号 `` 来转义。

MarkdownHTMLOutput
``在 Markdown 文档中使用 `code`。``<code>在 Markdown 文档中使用 <code>code</code>。</code>在 Markdown 文档中使用 `code`。
`` ` ``<code>`</code>`

代码块

要创建代码块,请将块的每一行缩进四个空格或一个制表符。

Markdown

md
    <html>
        <head>
        </head>
    </html>

Output

<html>
    <head>
    </head>
</html>

提示

要创建带有语法高亮的代码块,请使用围栏式代码块

链接

要创建链接,请将链接文本括在中括号 [] 中,紧接着将 URL 括在圆括号 () 中。

Markdown

md
我的网站链接:[HelloWorld](https://helloworld.study/)

Output

我的网站链接:HelloWorld

链接标题

当光标悬停在链接上时,将显示链接的标题,标题默认是 URL。要自定义标题,请在 URL 后面缩进一个或多个空格并放在单引号 ''、双引号 "" 或括在圆括号 () 中。

Markdown

md
我的网站链接:[HelloWorld](https://helloworld.study/ '一二三四五')

我的网站链接:[HelloWorld](https://helloworld.study/ "上山打老虎")

我的网站链接:[HelloWorld](https://helloworld.study/ (上山打老虎))

Output

我的网站链接:HelloWorld

我的网站链接:HelloWorld

我的网站链接:HelloWorld

URL 和 Email

要快速将 URL 或 Email 转换为链接,请将其括在尖括号 <> 中。

Markdown

md
<https://helloworld.study/>

<[email protected]>

Output

https://helloworld.study/

[email protected]

设置链接的格式

强调链接,请在链接文本两边或链接两边添加指定数量的星号 * 或下划线 _。要将链接表示为代码,请在链接文本两边添加反引号 `

Markdown

md
我的网站链接:[*HelloWorld*](https://helloworld.study/)

我的网站链接:**[HelloWorld](https://helloworld.study/)**

我的网站链接:[***HelloWorld***](https://helloworld.study/)

我的网站链接:[`HelloWorld`](https://helloworld.study/)

Output

我的网站链接:HelloWorld

我的网站链接:HelloWorld

我的网站链接:HelloWorld

我的网站链接:HelloWorld

引用式链接

引用式链接是一种特殊的链接,使 URL 可以在 Markdown 文档中被重复使用。引用式链接由两部分组成:与文本保持内联的部分和放在文档中其他位置的部分。

设置引用式链接的第一部分

引用式链接的第一部分由两组方括号 [] 组成。第一组方括号中显示链接的文本,这是可选的;第二组方括号中显示指向 Markdown 文档中其他位置 URL 的标签。

[我的网站链接][HelloWorld]

设置引用式链接的第二部分

引用式链接的第二部分格式如下:

  1. 链接的标签括在方括号 [] 中,后面紧跟一个冒号 :
  2. 链接的 URL,可以选择将链接括在尖括号 <> 中;
  3. 链接的可选标题,标题应放在单引号 ''、双引号 "" 或圆括号 () 中。

[HelloWorld]:https://helloworld.study/ "上山打老虎"

可以将引用式链接的第二部分放置在 Markdown 文档中的任意位置。有些人将它们放在第一部分之后,而其他人则将它们放在文档末尾(如尾注或脚注)之后。

把各个部分组合在一起的例子

Markdown

md
[HelloWorld]

[我的网站链接][HelloWorld]

[HelloWorld]:https://helloworld.study/ "上山打老虎"

Output

HelloWorld

我的网站链接

图片

要添加图片,只需要在链接前添加一个感叹号 ! 即可。

Markdown

md
![图片](https://helloworld.study/logo.png)

Output

图片

块引用

要创建块引用,请在文本前面添加一个右尖括号 > 并缩进一个或多个空格。

Markdown

md
> 这是一段引用文本。

Output

这是一段引用文本。

多段块引用

要创建多段块引用,请在段落之间的空白行上添加 >

Markdown

md
> 这是一段引用文本。
>
> 这是另外一段引用文本。

Output

这是一段引用文本。

这是另外一段引用文本。

嵌套块引用

要创建嵌套块引用,请在要嵌套的文本前面再添加一个 >,以此类推。

Markdown

md
> 这是一段引用文本。
>> 这是嵌套的引用文本。

Output

这是一段引用文本。

这是嵌套的引用文本。

包含其它元素的块引用

块引用可以包含其他元素,但不是所有元素都可以生效。

Markdown

md
> #### 标题
>
> 1. 有序列表
> * 无序列表
> - 无序列表
>
>  *斜体*看起来不是**粗体**.

Output

标题

  1. 有序列表
  • 无序列表
  • 无序列表

斜体看起来不是粗体

列表

可以将文本放在有序列表和无序列表中。

有序列表

要创建有序列表,请在文本前面添加数字和点号 . 并缩进一个或多个空格。缩进三个或多个空格可以嵌套列表。

MarkdownHTMLOutput
  1. 第一项
    2. 第二项
    3. 第三项 | <ol>
         <li>第一项</li>
         <li>第二项</li>
         <li>第三项</li>
    </ol> |
    1. 第一项
    2. 第二项
    3. 第三项
  2. 第一项
    3. 第二项
    2. 第三项 | <ol>
         <li>第一项</li>
         <li>第二项</li>
         <li>第三项</li>
    </ol> |
    1. 第一项
    2. 第二项
    3. 第三项
  3. 第一项
    1. 第二项
    1. 第三项 | <ol>
         <li>第一项</li>
         <li>第二项</li>
         <li>第三项</li>
    </ol> |
    1. 第一项
    2. 第二项
    3. 第三项
  4. 第一项
    2. 第二项
        1. 缩进项
        2. 缩进项
    3. 第三项 | <ol>
         <li>第一项</li>
         <li>第二项</li>
         <ol>
             <li>缩进项</li>
             <li>缩进项</li>
         </ol>
         <li>第三项</li>
    </ol> |
    1. 第一项
    2. 第二项
      1. 缩进项
      2. 缩进项
    3. 第三项

无序列表

要创建无序列表,请在文本前面添加星号 * 、减号 - 或加号 + 并缩进一个或多个空格。缩进三个或多个空格可以嵌套列表。

MarkdownHTMLOutput
  • 第一项
    * 第二项
    * 第三项 | <ul>
         <li>第一项</li>
         <li>第二项</li>
         <li>第三项</li>
    </ul> |
    • 第一项
    • 第二项
    • 第三项
  • 第一项
    - 第二项
    - 第三项 | <ul>
         <li>第一项</li>
         <li>第二项</li>
         <li>第三项</li>
    </ul> |
    • 第一项
    • 第二项
    • 第三项
  • 第一项
    + 第二项
    + 第三项 | <ul>
         <li>第一项</li>
         <li>第二项</li>
         <li>第三项</li>
    </ul> |
    • 第一项
    • 第二项
    • 第三项
  • 第一项
    * 第二项
        * 缩进项
        * 缩进项
    * 第三项 | <ul>
         <li>第一项</li>
         <li>第二项</li>
         <ul>
             <li>缩进项</li>
             <li>缩进项</li>
         </ul>
         <li>第三项</li>
    </ul> |
    • 第一项
    • 第二项
      • 缩进项
      • 缩进项
    • 第三项

在列表中添加元素

列表可以添加其他元素,为了保持列表的连续性,应缩进元素四个空格或一个制表符。

段落

Markdown

md
1. 这是第一个列表项。
我需要在第一个列表项下方添加另一个段落。
2. 这是第二个列表项。

我需要在第二个列表项下方添加另一个段落。

3. 这是第三个列表项。

    段落在第三个列表项下方看起来很棒。

Output

  1. 这是第一个列表项。 我需要在第一个列表项下方添加另一个段落。
  2. 这是第二个列表项。

我需要在第二个列表项下方添加另一个段落。

  1. 这是第三个列表项。

    段落在第三个列表项下方看起来很棒。

块引用

Markdown

md
1. 这是第一个列表项。
> 我需要在第一个列表项下方添加另一个引用文本。
2. 这是第二个列表项。

> 我需要在第二个列表项下方添加另一个引用文本。

3. 这是第三个列表项。
    > 引用文本在第三个列表项下方看起来很棒。

Output

  1. 这是第一个列表项。

我需要在第一个列表项下方添加另一个引用文本。

  1. 这是第二个列表项。

我需要在第二个列表项下方添加另一个引用文本。

  1. 这是第三个列表项。

    引用文本在第三个列表项下方看起来很棒。

代码块

当代码块在列表中时,需要缩进它们四个空格或一个制表符。

Markdown

md
1. 打开文件。
2. 在第 21 行上查找以下代码块:

        <html>
            <head>
            <title>Test</title>
            </head>

3. 更新标题以匹配网站名称。

Output

  1. 打开文件。

  2. 在第 21 行上查找以下代码块:

     <html>
         <head>
         <title>Test</title>
         </head>
    
  3. 更新标题以匹配网站名称。

图片

Markdown

md
1. 打开包含一张图片的文件。
2. 真棒。

    ![图片](https://helloworld.study/logo.png)

3. 关闭文件。

Output

  1. 打开包含一张图片的文件。

  2. 真棒。

    图片

  3. 关闭文件。

转义字符

要显示用于在 Markdown 文档中设置文本格式的字符,需要在字符前面添加反斜杠 \

Markdown

md
\* 如果没有反斜杠,这将是无序列表中的一项。

\1. 如果没有反斜杠,这将是有序列表中的一项。

Output

* 如果没有反斜杠,这将是无序列表中的一项。

\1. 如果没有反斜杠,这将是有序列表中的一项。

可以转义的字符

可以使用反斜杠来转义以下字符。

CharacterName
\反斜杠
`反引号
  • | 星号 _ | 下划线 {} | 花括号 [] | 中括号 () | 圆括号

| 井号

  • | 加号
  • | 减号 . | 点号 ! | 感叹号 | | 竖线

Markdown 扩展语法

一些个人和组织通过添加其他元素(如表格、代码块、语法高亮、和自动 URL 链接)来扩展 Markdown 基本语法。并非所有 Markdown 应用程序都支持扩展语法元素。你需要检查使用的 Markdown 应用程序是否支持要使用的扩展语法元素。

表格

要创建表格,请添加三个或多个减号 --- 来创建每列的表头,并使用竖线 | 分隔每列。你可以选择在表格的任意一端添加 |,这取决于不同的Markdown 应用程序是否支持。

Markdown

md
| 表头 | 表头 |
| --- | --- |
| 表格单元 | 表格单元 |
| 表格单元 | 表格单元 |

Output

表头表头
表格单元表格单元
表格单元表格单元

提示

使用 -| 创建表格可能很繁琐。要加快该过程,请尝试使用 Markdown 表格生成器。使用图形界面构建表格,然后将生成的 Markdown 格式文本复制到文档中。

表格对齐

默认的对齐方式是左对齐。你也可以通过在创建表头的 - 的左侧、右侧或两侧添加冒号 :,使表格中的文本向左、向右或居中对齐。

Markdown

md
表头 | 表头 | 表头
:--- | :---: | ---:
左对齐 | 居中对齐 | 右对齐
左对齐 | 居中对齐 | 右对齐

Output

表头表头表头
左对齐居中对齐右对齐
左对齐居中对齐右对齐

设置表格中的文本格式

你可以在表格中设置文本的格式。例如,你可以添加链接代码(仅反引号 ` 中的文本,而不是代码块)和强调,但不是所有元素都可以生效。

Markdown

md
[链接](https://helloworld.study/) | `代码` | **粗体***斜体*
--- | :---: | ---
# 标题 | ![图片](https://helloworld.study/logo.png "图片") | > 块引用
* 无序列表 | <h1>HTML 标签</h1> | 1. 有序列表

Output

链接代码粗体斜体

标题 | 图片 | > 块引用

  • 无序列表 |

    HTML 标签

    | 1. 有序列表

围栏式代码块

基本的 Markdown 语法允许你通过缩进四个空格或一个制表符来创建代码块。如果你发现不方便,请尝试使用带围栏的代码块。你可以在代码块之前和之后的行上使用三个反引号 ` 或三个波浪号 ~ 来创建围栏式代码块。

Markdown

md
```
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
```

~~~
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
~~~

Output

{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}

提示

如果需要在代码块内显示反引号 `,请查看反引号转义

语法高亮

许多 Markdown 应用程序支持对围栏式代码块中的代码语法进行高亮显示。此功能允许你为任何语言的代码显示不同的颜色与字体以增强可读性。要添加语法高亮,请在代码块之前的反引号 ` 或波浪号 ~ 旁边指定一种语言的有效别名。

Markdown

md
```json
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
```

~~~json
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
~~~

Output

json
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}
json
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}

提示

查看合法的语言列表

标题标识与链接

许多 Markdown 应用程序会自动给每一个标题生成一个锚点 #标题内容,其标识默认是标题内容。

Markdown

md
### 这是三级标题

HTML

html
<h3 id="这是三级标题">这是三级标题</h3>

链接到标题

要链接到其它标题,请使用锚点来创建一个标准链接

MarkdownHTMLOutput
[标题标识与链接](#标题标识与链接)<h3 id="标题标识与链接">标题标识与链接</h3>标题标识与链接

其他网站可以通过将锚点添加到完整 URL 后面实现链接到指定标题。

Markdown

md
[标题标识与链接](https://helloworld.study/1587452515.html#标题标识与链接)

Output

标题标识与链接

删除线

此功能允许你指示某些文本是一个错误。要创建删除线,请在文本两边添加两个波浪号 ~~

Markdown

md
~~去死吧!~~  
我什么都没说。

Output

去死吧!
我什么都没说。

表情符号

有两种方法可以将表情符号添加到 Markdown 的文档中:复制表情符号并将其粘贴到 Markdown 的文本中;或键入表情符号短代码。

复制和粘贴表情符号

在大多数情况下,只需从表情符号等网站复制表情符号并将其粘贴到文本中即可。许多 Markdown 应用程序将自动显示表情符号。

Markdown

md
今天天气晴朗☀️,我很开心😀,给你点个赞👍。

Output

今天天气晴朗☀️,我很开心😀,给你点个赞👍。

使用表情符号短代码

某些 Markdown 应用程序允许你通过键入表情符号短代码来插入表情符号。表情符号短代码以冒号 : 开头和结尾,中间是表情符号的名称。

Markdown

md
今天天气晴朗:sunny:,我很开心:grinning:,给你点个赞:thumbsup:。

Output

今天天气晴朗☀️,我很开心😀,给你点个赞👍。

提示

你可以在这个 Emoji 列表找到所有可用的表情符号短代码。

Released under the MIT License.