Markdown是一种轻量级标记语言,排版语法简洁,让人们更多地关注内容本身而非排版。它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML、PDF 以及本身的 .md 格式的文件。
因简洁、高效、易读、易写,Markdown被大量使用,如Github、Wikipedia、简书等。
Markdown的语法十分简单,常用的标记符号不超过十个,用于日常写作记录绰绰有余,不到半小时就能完全掌握。能让人优雅地沉浸式记录,专注内容而不是纠结排版,达到「心中无尘,码字入神」的境界。
Markdown 标题语法
要创建标题,请在单词或短语前面添加井号 (#
) 。#
的数量代表了标题的级别,分为一到 六个级别。例如,添加三个 #
表示创建一个三级标题 (<h3>
) (例如:### My Header
)。
不同的 Markdown 应用程序处理 #
和标题之间的空格方式并不一致。为了兼容考虑,请用一个空格在 #
和标题之间进行分隔。
Markdown语法 | HTML | 预览效果 |
---|---|---|
# Heading level 1 |
<h1>Heading level 1</h1> |
Heading level 1 |
## Heading level 2 |
<h2>Heading level 2</h2> |
Heading level 2 |
### Heading level 3 |
<h3>Heading level 3</h3> |
Heading level 3 |
#### Heading level 4 |
<h4>Heading level 4</h4> |
Heading level 4 |
##### Heading level 5 |
<h5>Heading level 5</h5> |
Heading level 5 |
###### Heading level 6 |
<h6>Heading level 6</h6> |
Heading level 6 |
还可以在文本下方添加任意数量的 == 号来标识一级标题,或者 – 号来标识二级标题。
Markdown语法 | HTML |
---|---|
Heading level 1 =============== |
<h1>Heading level 1</h1> |
Heading level 2 --------------- |
<h2>Heading level 2</h2> |
Markdown 段落
要创建段落,请使用空白行将一行或多行文本进行分隔。但不要用空格(spaces)或制表符( tabs)缩进段落。
Markdown语法 | HTML | 预览效果 |
---|---|---|
I really like using Markdown. I think I'll use it to format all of my documents from now on. |
<p>I really like using Markdown.</p> <p>I think I'll use it to format all of my documents from now on.</p> |
I really like using Markdown. I think I’ll use it to format all of my documents from now on. |
Markdown 换行语法
在一行的末尾添加两个或多个空格(叫做结尾空行),然后按回车键,即可创建一个换行。
虽然大多数Markdown应用程序都支持结尾空行进行换行,但因为很难在编辑器中直接看到空格。为了兼容性,请在行尾添加“结尾空格”或 HTML 的 <br>
标签来实现换行。
Markdown语法 | HTML | 预览效果 |
---|---|---|
This is the first line. And this is the second line. |
<p>This is the first line.<br> And this is the second line.</p> |
This is the first line. And this is the second line. |
Markdown 强调语法
要加粗文本,请在单词或短语的前后各添加两个星号(asterisks)或下划线(underscores)。如需加粗一个单词或短语的中间部分用以表示强调的话,请在要加粗部分的两侧各添加两个星号(asterisks)。
Markdown语法 | HTML | 预览效果 |
---|---|---|
I just love **bold text**. |
I just love <strong>bold text</strong>. |
I just love bold text. |
I just love __bold text__. |
I just love <strong>bold text</strong>. |
I just love bold text. |
Love**is**bold |
Love<strong>is</strong>bold |
Loveisbold |
要用斜体显示文本,请在单词或短语前后添加一个星号(asterisk)或下划线(underscore)。要斜体突出单词的中间部分,请在字母前后各添加一个星号,中间不要带空格。
Markdown语法 | HTML | 预览效果 |
---|---|---|
Italicized text is the *cat's meow*. |
Italicized text is the <em>cat's meow</em>. |
Italicized text is the cat’s meow. |
Italicized text is the _cat's meow_. |
Italicized text is the <em>cat's meow</em>. |
Italicized text is the cat’s meow. |
A*cat*meow |
A<em>cat</em>meow |
Acatmeow |
要同时用粗体和斜体突出显示文本,请在单词或短语的前后各添加三个星号或下划线。要加粗并用斜体显示单词或短语的中间部分,请在要突出显示的部分前后各添加三个星号,中间不要带空格。
Markdown语法 | HTML | 预览效果 |
---|---|---|
This text is ***really important***. |
This text is <strong><em>really important</em></strong>. |
This text is really important. |
This text is ___really important___. |
This text is <strong><em>really important</em></strong>. |
This text is really important. |
This text is __*really important*__. |
This text is <strong><em>really important</em></strong>. |
This text is really important. |
This text is **_really important_**. |
This text is <strong><em>really important</em></strong>. |
This text is really important. |
This is really***very***important text. |
This is really<strong><em>very</em></strong>important text. |
This is reallyveryimportant text. |
若要删除单词或语句,请在单词或语句前后使用两个波浪号~~
~~世界是平坦的。~~ 我们现在知道世界是圆的。
呈现的输出如下所示:
世界是平坦的。 我们现在知道世界是圆的。
Markdown 引用语法
要创建块引用,请在段落前添加一个 >
符号。
> Dorothy followed her through many of the beautiful rooms in her castle.
渲染效果如下所示:
Dorothy followed her through many of the beautiful rooms in her castle.
块引用可以包含多个段落。为段落之间的空白行添加一个 >
符号。
> Dorothy followed her through many of the beautiful rooms in her castle.
>
> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood.
渲染效果如下:
Dorothy followed her through many of the beautiful rooms in her castle.
The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood.
块引用可以嵌套。在要嵌套的段落前添加一个 >> 符号。
> Dorothy followed her through many of the beautiful rooms in her castle.
>
>> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood.
渲染效果如下:
Dorothy followed her through many of the beautiful rooms in her castle.
The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood.
块引用可以包含其他 Markdown 格式的元素。并非所有元素都可以使用,你需要进行实验以查看哪些元素有效。
> #### The quarterly results look great!
>
> - Revenue was off the chart.
> - Profits were higher than ever.
>
> *Everything* is going according to **plan**.
渲染效果如下:
The quarterly results look great!
- Revenue was off the chart.
- Profits were higher than ever.
Everything is going according to plan.
Markdown 列表语法
要创建有序列表,请在每个列表项前添加数字并紧跟一个英文句点。数字不必按数学顺序排列,但是列表应当以数字 1 起始。
Markdown语法 | HTML | 预览效果 |
---|---|---|
1. First item 2. Second item 3. Third item 4. Fourth item |
<ol> <li>First item</li> <li>Second item</li> <li>Third item</li> <li>Fourth item</li> </ol> |
1. First item 2. Second item 3. Third item 4. Fourth item |
1. First item 1. Second item 1. Third item 1. Fourth item |
<ol> <li>First item</li> <li>Second item</li> <li>Third item</li> <li>Fourth item</li> </ol> |
1. First item 1. Second item 1. Third item 1. Fourth item |
1. First item 8. Second item 3. Third item 5. Fourth item |
<ol> <li>First item</li> <li>Second item</li> <li>Third item</li> <li>Fourth item</li> </ol> |
1. First item 8. Second item 3. Third item 5. Fourth item |
1. First item 2. Second item 3. Third item 1. Indented item 2. Indented item 4. Fourth item |
<ol> <li>First item</li> <li>Second item</li> <li>Third item <ol> <li>Indented item</li> <li>Indented item</li> </ol> </li> <li>Fourth item</li> </ol> |
1. First item 2. Second item 3. Third item 1. Indented item 2. Indented item 4. Fourth item |
要创建无序列表,请在每个列表项前面添加破折号 (-)、星号 (*) 或加号 (+) 。缩进一个或多个列表项可创建嵌套列表。
Markdown语法 | HTML | 预览效果 |
---|---|---|
- First item - Second item - Third item - Fourth item |
<ul> <li>First item</li> <li>Second item</li> <li>Third item</li> <li>Fourth item</li> </ul> |
- First item - Second item - Third item - Fourth item |
* First item * Second item * Third item * Fourth item |
<ul> <li>First item</li> <li>Second item</li> <li>Third item</li> <li>Fourth item</li> </ul> |
* First item * Second item * Third item * Fourth item |
+ First item + Second item + Third item + Fourth item |
<ul> <li>First item</li> <li>Second item</li> <li>Third item</li> <li>Fourth item</li> </ul> |
+ First item + Second item + Third item + Fourth item |
- First item - Second item - Third item - Indented item - Indented item - Fourth item |
<ul> <li>First item</li> <li>Second item</li> <li>Third item <ul> <li>Indented item</li> <li>Indented item</li> </ul> </li> <li>Fourth item</li> </ul> |
- First item - Second item - Third item - Indented item - Indented item - Fourth item |
要在保留列表连续性的同时在列表中添加另一种元素,请将该元素缩进四个空格或一个制表符,如下例所示:
段落
* This is the first list item.
* Here's the second list item.
I need to add another paragraph below the second list item.
* And here's the third list item.
渲染效果如下:
This is the first list item.
Here’s the second list item.
I need to add another paragraph below the second list item.
And here’s the third list item.
引用块
* This is the first list item.
* Here's the second list item.
> A blockquote would look great below the second list item.
* And here's the third list item.
渲染效果如下:
This is the first list item.
Here’s the second list item.
A blockquote would look great below the second list item.
And here’s the third list item.
代码块
代码块通常采用四个空格或一个制表符缩进。当它们被放在列表中时,请将它们缩进八个空格或两个制表符。
1. Open the file.
2. Find the following code block on line 21:
``
``
`Test `
``
3. Update the title to match the name of your website.
渲染效果如下:
Open the file.
Find the following code block on line 21:
`` `` `
Test ` ``Update the title to match the name of your website.
图片
1. Open the file containing the Linux mascot.
2. Marvel at its beauty.
![Cover](/medias/cover.jpg)
3. Close the file.
渲染效果如下:
Open the file containing the Linux mascot.
Marvel at its beauty.
Close the file.
Markdown 代码语法
要将单词或短语表示为代码,请将其包裹在反引号 (```) 中。
Markdown语法 | HTML | 预览效果 |
---|---|---|
At the command prompt, type nano. |
At the command prompt, type <code>nano</code>. |
At the command prompt, type nano . |
转义反引号
如果你要表示为代码的单词或短语中包含一个或多个反引号,则可以通过将单词或短语包裹在双反引号(````)中。
Markdown语法 | HTML | 预览效果 |
---|---|---|
Use `code` in your Markdown file. |
<code>Use code in your Markdown file.</code> |
Use code in your Markdown file. |
代码块
要创建代码块,请将代码块的每一行缩进至少四个空格或一个制表符。
<html>
<head>
</head>
</html>
渲染效果如下:
<html>
<head>
</head>
</html>
Markdown 分隔线语法
要创建分隔线,请在单独一行上使用三个或多个星号 (***
)、破折号 (---
) 或下划线 (___
) ,并且不能包含其他内容。为了兼容性,请在分隔线的前后均添加空白行。
***
---
_________________
Markdown 链接语法
超链接Markdown语法代码:[超链接显示名](超链接地址 "超链接title")
对应的HTML代码:<a href="超链接地址" title="超链接title">超链接显示名</a>
这是一个链接 [Markdown语法](https://markdown.org)。
渲染效果如下:
这是一个链接 Markdown语法。
链接title是当鼠标悬停在链接上时会出现的文字,这个title是可选的,它放在圆括号中链接地址后面,跟链接地址之间以空格分隔。
这是一个链接 [Markdown语法](/posts/a0b1cc7d.html "最好的markdown教程")。
渲染效果如下:
这是一个带title的链接 Markdown语法。
使用尖括号可以很方便地把URL或者email地址变成可点击的链接。
<https://markdown.org>
<fake@example.com>
渲染效果如下:
https://markdown.org
fake@example.com
强调链接, 在链接语法前后增加星号。 要将链接表示为代码,请在方括号中添加反引号。
I love supporting the **[EFF](https://eff.org)**.
This is the *[Markdown Guide](https://www.markdownguide.org)*.
See the section on [`code`](#code).
渲染效果如下:
I love supporting the EFF.
This is the Markdown Guide.
See the section on code
.
引用样式链接是一种特殊的链接,它使URL在Markdown中更易于显示和阅读。参考样式链接分为两部分:与文本保持内联的部分以及存储在文件中其他位置的部分,以使文本易于阅读。
链接的第一部分格式
引用类型的链接的第一部分使用两组括号进行格式设置。第一组方括号包围应显示为链接的文本。第二组括号显示了一个标签,该标签用于指向您存储在文档其他位置的链接。
尽管不是必需的,可以在第一组和第二组括号之间包含一个空格。第二组括号中的标签不区分大小写,可以包含字母,数字,空格或标点符号。
以下示例格式对于链接的第一部分效果相同:
[hobbit-hole][1]
[hobbit-hole] [1]
链接的第二部分格式
引用类型链接的第二部分使用以下属性设置格式:
- 放在括号中的标签,其后紧跟一个冒号和至少一个空格(例如
[label]:
)。 - 链接的URL,可以选择将其括在尖括号中。
- 链接的可选标题,可以将其括在双引号,单引号或括号中。
以下示例格式对于链接的第二部分效果相同:
[1]: https://en.wikipedia.org/wiki/Hobbit#Lifestyle
[1]: https://en.wikipedia.org/wiki/Hobbit#Lifestyle "Hobbit lifestyles"
[1]: https://en.wikipedia.org/wiki/Hobbit#Lifestyle 'Hobbit lifestyles'
[1]: https://en.wikipedia.org/wiki/Hobbit#Lifestyle (Hobbit lifestyles)
[1]: <https://en.wikipedia.org/wiki/Hobbit#Lifestyle> "Hobbit lifestyles"
[1]: <https://en.wikipedia.org/wiki/Hobbit#Lifestyle> 'Hobbit lifestyles'
[1]: <https://en.wikipedia.org/wiki/Hobbit#Lifestyle> (Hobbit lifestyles)
可以将链接的第二部分放在Markdown文档中的任何位置。有些人将它们放在出现的段落之后,有些人则将它们放在文档的末尾(例如尾注或脚注)。
Markdown 图片语法
要添加图像,请使用感叹号 (!
), 然后在方括号增加替代文本,图片链接放在圆括号里,括号里的链接后可以增加一个可选的图片标题文本。
插入图片Markdown语法代码:![图片alt](图片链接 "图片title")
。
对应的HTML代码:<img src="图片链接" alt="图片alt" title="图片title">
![Fate stay night1](/medias/images/01.jpg "Fate stay night1")
渲染效果如下:
给图片增加链接,请将图像的Markdown 括在方括号中,然后将链接添加在圆括号中。
[![Fate stay night2](/medias/images/02.jpg "Fate stay night2")](https://icnz.github.io/)
渲染效果如下:
Markdown 转义字符语法
要显示原本用于格式化 Markdown 文档的字符,请在字符前面添加反斜杠字符 \ 。
\* Without the backslash, this would be a bullet in an unordered list.
渲染效果如下:
* Without the backslash, this would be a bullet in an unordered list.
以下列出的字符都可以通过使用反斜杠字符从而达到转义目的。
Character | Name |
---|---|
\ | 反斜杠(backslash) |
` | 反引号(backtick) |
* | 星号(asterisk) |
_ | 下划线(underscore) |
{ } | 大括号(curly braces) |
[ ] | 中括号(brackets) |
( ) | 括号(parentheses) |
# | 英镑符号(pound sign) |
+ | 加号(plus sign) |
- | 减号(连字符)(minus sign (hyphen)) |
. | 点(dot) |
! | 感叹号(exclamation mark) |
| | 管道(pipe) |
在 HTML 文件中,有两个字符需要特殊处理: <
和 &
。 <
符号用于起始标签,&
符号则用于标记 HTML 实体,如果你只是想要使用这些符号,你必须要使用实体的形式,像是 <
和 &
。
如果你要链接到:
http://images.google.com/images?num=30&q=larry+bird
你必须要把网址转成:
http://images.google.com/images?num=30&q=larry+bird
才能放到链接标签的 href
属性里。
Markdown 内嵌 HTML 标签
对于 Markdown 涵盖范围之外的标签,都可以直接在文件里面用 HTML 本身。如需使用 HTML,不需要额外标注这是 HTML 或是 Markdown,只需 HTML 标签添加到 Markdown 文本中即可。
HTML 的行级內联标签如 <span>
、<cite>
、<del>
不受限制,可以在 Markdown 的段落、列表或是标题里任意使用。依照个人习惯,甚至可以不用 Markdown 格式,而采用 HTML 标签来格式化。
This **word** is bold. This word is italic.
渲染效果如下:
This word is bold. This word is italic.
HTML区块元素如 <div>
、<table>
、<pre>
、<p>
等标签,必须在前后加上空行,以便于内容区分。而且这些元素的开始与结尾标签,不可以用 tab 或是空白来缩进。Markdown 会自动识别这区块元素,避免在区块标签前后加上没有必要的 <p>
标签。
例如,在 Markdown 文件里加上一段 HTML 表格:
This is a regular paragraph.
<table>
<tr>
<td>Foo</td>
</tr>
</table>
This is another regular paragraph.
请注意,Markdown 语法在 HTML 区块标签中将不会被进行处理。例如,你无法在 HTML 区块内使用 Markdown 形式的*强调*
。
例如,在 Markdown 文件里加上一段 HTML 表格:
This is a regular paragraph.
<table>
<tr>
<td>Foo</td>
</tr>
</table>
This is another regular paragraph.
请注意,Markdown 语法在 HTML 区块标签中将不会被进行处理。例如,你无法在 HTML 区块内使用 Markdown 形式的*强调*
。
Markdown 表格
要添加表,请使用三个或多个连字符(---
)创建每列的标题,并使用管道(|
)分隔每列。您可以选择在表的任一端添加管道。
| Syntax | Description |
| ----------- | ----------- |
| Header | Title |
| Paragraph | Text |
呈现的输出如下所示:
Syntax | Description |
---|---|
Header | Title |
Paragraph | Text |
通过在标题行中的连字符的左侧,右侧或两侧添加冒号(:
),将列中的文本对齐到左侧,右侧或中心。
| Syntax | Description | Test Text |
| :--- | :----: | ---: |
| Header | Title | Here's this |
| Paragraph | Text | And more |
呈现的输出如下所示:
Syntax | Description | Test Text |
---|---|---|
Header | Title | Here’s this |
Paragraph | Text | And more |
可以在表格中设置文本格式。例如,可以添加链接,代码(仅反引号(```)中的单词或短语,而不是代码块)和强调。
不能添加标题,块引用,列表,水平规则,图像或HTML标签。
使用表格的HTML字符代码(|
)在表中显示竖线(|
)字符。
Markdown 围栏代码块
Markdown基本语法允许通过将行缩进四个空格或一个制表符来创建代码块。根据Markdown处理器或编辑器的不同,需要在代码块之前和之后的行上使用三个反引号((`````)或三个波浪号(~~~)。
```
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
```
呈现的输出如下所示:
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
许多Markdown处理器都支持受围栏代码块的语法突出显示。使用此功能,可以为编写代码的任何语言添加颜色突出显示。要添加语法突出显示,请在受防护的代码块之前的反引号旁边指定一种语言。
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
呈现的输出如下所示:
{ “firstName”: “John”, “lastName”: “Smith”, “age”: 25 }
Markdown 脚注
脚注使您可以添加注释和参考,而不会使文档正文混乱。当您创建脚注时,带有脚注的上标数字会出现在您添加脚注参考的位置。读者可以单击链接以跳至页面底部的脚注内容。
要创建脚注参考,需在方括号([^1]
)内添加插入符号和标识符。标识符可以是数字或单词,但不能包含空格或制表符。标识符仅将脚注参考与脚注本身相关联-在输出中,脚注按顺序编号。
在括号内使用另一个插入符号和数字添加脚注,并用冒号和文本([^1]: My footnote.
)。您不必在文档末尾添加脚注。您可以将它们放在除列表,块引号和表之类的其他元素之外的任何位置。
Here's a simple footnote,[^1] and here's a longer one.[^bignote]
[^1]: This is the first footnote.
[^bignote]: Here's one with multiple paragraphs and code.
Indent paragraphs to include them in the footnote.
`{ my code }`
Add as many paragraphs as you like.
呈现的输出如下所示:
Here’s a simple footnote,[^1] and here’s a longer one.[^bignote]
[^1]: This is the first footnote.
[^bignote]: Here’s one with multiple paragraphs and code.
Markdown 标题编号
许多Markdown处理器支持标题的自定义ID - 一些Markdown处理器会自动添加它们。添加自定义ID允许您直接链接到标题并使用CSS对其进行修改。要添加自定义标题ID,请在与标题相同的行上用大括号括起该自定义ID。
### My Great Heading {#custom-id}
HTML看起来像这样:
<h3 id="custom-id">My Great Heading</h3>
通过创建带有数字符号(#
)和自定义标题ID的标准链接,可以链接到文件中具有自定义ID的标题。
Markdown | HTML | 预览效果 |
---|---|---|
[Heading IDs](#heading-ids) |
<a href="#heading-ids">Heading IDs</a> |
Heading IDs |
其他网站可以通过将自定义标题ID添加到网页的完整URL(例如[Heading IDs](#headid)
)来链接到标题。
Markdown 定义列表
一些Markdown处理器允许您创建术语及其对应定义的定义列表。要创建定义列表,请在第一行上键入术语。在下一行,键入一个冒号,后跟一个空格和定义。
First Term
: This is the definition of the first term.
Second Term
: This is one definition of the second term.
: This is another definition of the second term.
HTML看起来像这样:
<dl>
<dt>First Term</dt>
<dd>This is the definition of the first term.</dd>
<dt>Second Term</dt>
<dd>This is one definition of the second term. </dd>
<dd>This is another definition of the second term.</dd>
</dl>
呈现的输出如下所示:
First Term
This is the definition of the first term.
Second Term
This is one definition of the second term.
This is another definition of the second term.
Markdown 任务列表语法
任务列表使语法可以创建带有复选框的项目列表。在支持任务列表的Markdown应用程序中,复选框将显示在内容旁边。要创建任务列表,请在任务列表项之前添加破折号-
和方括号[ ]
,并在[ ]
前面加上空格。要选择一个复选框,请在方括号[x]
之间添加 x 。
- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media
呈现的输出如下所示:
- Write the press release
- Update the website
- Contact the media
Markdown 使用 Emoji 表情
有两种方法可以将表情符号添加到Markdown文件中:将表情符号复制并粘贴到Markdown格式的文本中,或者键入emoji shortcodes。
可以简单地从Emoji速查表 等来源复制表情符号并将其粘贴到文档中。许多Markdown应用程序会自动以Markdown格式的文本显示表情符号。
一些Markdown应用程序允许通过键入表情符号短代码来插入表情符号。这些以冒号开头和结尾,并包含表情符号的名称。
去露营了! :tent: 很快回来。
真好笑! :joy:
呈现的输出如下所示:
去露营了!⛺很快回来。
真好笑!😂
自动网址链接
许多Markdown处理器会自动将URL转换为链接。这意味着如果输入http://www.example.com,即使未使用`方括号`,Markdown处理器也会自动将其转换为链接。
http://www.example.com
呈现的输出如下所示:
如果您不希望自动链接URL,则可以通过将URL表示为带反引号的代码来删除该链接。
`http://www.example.com`
呈现的输出如下所示:
http://www.example.com