# Markdown基础语法

# 概述

几乎所有Markdown应用程序都支持John Gruber原始设计文档中概述的基本语法。Markdown处理器之间存在细微的变化和差异-尽可能以内联方式注明。

# 标题

要创建标题,请在文字前面添加#号。#号个数与标题级别相对应。例如,要创建三级标题(<h3>),请使用三个#号(例如,### 我的标题)。

Markdown HTML 输出
# 一级标题 <h1>一级标题</h1>

一级标题

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

二级标题

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

三级标题

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

四级标题

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

# 替代语法

或者,在文本的下一行,为一级标题添加任意数量的==符号,为二级标题添加--符号。

Markdown HTML 输出
一级标题
=======
<h1>一级标题</h1>

一级标题

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

二级标题

# 标题最佳实践

Markdown应用程序在如何处理#号和标题名称之间的空格方面并不一致。为了兼容,请始终在#号和标题名称之间留一个空格。

✅正确做法 ❌错误做法
# 一级标题 #一级标题

# 段落

要创建段落,请空出一行用来分隔一行或多行文本。

Markdown HTML 输出
我喜欢用Markdown

我现在可以用它格式化我的文档
<p>我喜欢用Markdown</p>

<p>我现在可以用它格式化我的文档</p>
我喜欢用Markdown
我现在可以用它格式化我的文档

# 段落最佳实践

不要用空格或制表符缩进段落。

✅正确做法 ❌错误做法
段落前面不要用tab或空格缩进
像这样保持左对齐
    这样可能会导致格式错误
  不要在段前加tab或空格

# 换行

若要创建换行符(<br>),请以两个或多个空格结束一行,然后回车。

Markdown HTML 输出
这是第一行  
这是另一行
<p>这是第一行<br>这是另一行</p> 这是第一行
这是另一行

# 换行最佳实践

几乎可以在任何Markdown应用程序中使用两个或多个空格(称为“尾随空格”)来换行,但这是有争议的。很难在编辑器中看到空格,而且很多人有意或无意地在每个句子后面都放两个空格。由于这个原因,可能要使用除尾随空格以外的其他东西来换行。幸运的是,几乎每个Markdown应用程序都支持另一个选项:<br> HTML标记。

为了兼容性,请在行尾使用尾随空格或<br> HTML标记。

还有其它两个选项,但我不建议使用。CommonMark和其他几种轻量级标记语言可在行尾键入反斜杠(\),但并非所有Markdown应用程序都支持此功能,因此从兼容性角度来看,这不是一个好选择。至少有两种轻量级标记语言不需要在行尾添加任何内容,只需回车即可创建换行符。

✅正确做法 ❌错误做法
第一行后面带两个空格。  
这是下一行。

第一行后面带HTML标签<br>
这是下一行。
第一行后面带反斜杠\
这是下一行。

第一行后面什么也不带。
这是下一行。

# 强调

可以通过使文本变为粗体或斜体来强调重点。

# 粗体

要加粗文本,请在文字前后添加两个星号或下划线。要加粗一个英文单词的中部,请在字母旁边添加两个星号,不加空格。

Markdown HTML 输出
这是**粗体**。 这是<strong>粗体</strong> 这是粗体
这是_粗体_ 这是<strong>粗体</strong> 这是粗体
Love**is**bold Love<strong>is</strong>bold Loveisbold

# 加粗最佳实践

Markdown应用程序在如何处理单词中间的下划线上并不一致。为了兼容,请使用星号将单词中间的粗体突出显示。

✅正确做法 ❌错误做法
Love**is**bold Love__is__bold

# 斜体

要斜体化文本,请在文本前后添加一个星号或下划线。要斜体突出英文单词的中间部分,请在字母周围添加一个星号,中间不要带空格。

Markdown HTML 输出
这是*斜体* 这是<em>斜体</em> 这是斜体
这是_斜体_ 这是<em>斜体</em> 这是斜体
A*cat*meow A<em>cat</em>meow Acatmeow

# 斜体最佳实践

Markdown应用程序在如何处理英文单词中间的下划线上并不一致。为了兼容,请使用星号将单词的中间斜体强调。

✅正确做法 ❌错误做法
A*cat*meow A_cat_meow

# 粗体加斜体

要同时突出显示带有粗体和斜体的文本,请在文本前后添加三个星号或下划线。要加粗并斜体显示英文单词的中间部分,请在字母周围添加三个星号,中间不要带空格。

Markdown HTML 输出
这里***非常重要*** 这里<em><strong>非常重要</strong></em> 这里非常重要
这里___非常重要___ 这里<em><strong>非常重要</strong></em> 这里非常重要
这里__*非常重要*__ 这里<em><strong>非常重要</strong></em> 这里非常重要
这里**_非常重要_** 这里<em><strong>非常重要</strong></em> 这里非常重要
This is really***very***important text. This is really<strong><em>very</em></strong>important text. This is reallyveryimportant text.

# 粗体加斜体最佳实践

Markdown应用程序在如何处理英文单词中间的下划线上并不一致。为了实现兼容性,请使用星号将单词的中间部分加粗并以斜体显示,以进行强调。

✅正确做法 ❌错误做法
This is really***very***important text. This is really___very___important text.

# 块引用

要创建blockquote,请在段落前面添加>。

> 宅家呗提供Verge3D教学和技术咨询服务。

输出结果为:

宅家呗提供Verge3D教学和技术咨询服务。

# 多个段落的块引用

块引用可以包含多个段落。在段落之间的空白行上添加一个>。

> Verge3D是面向3D设计师的WebGL开发工具。
> 
> 宅家呗致力于推广Verge3D,让人人都会Web3D开发。
1
2
3

输出结果为:

Verge3D是面向设计师的Web3D开发工具。

宅家呗致力于推广Verge3D,让人人都会Web3D开发。

# 嵌套的块引用

块引用可以嵌套。在要嵌套的段落前面添加>>。

> Verge3D是面向设计师的Web3D开发工具。
> 
>> 宅家呗致力于推广Verge3D,让人人都会Web3D开发。
1
2
3

输出结果为:

Verge3D是面向设计师的Web3D开发工具。

宅家呗致力于推广Verge3D,让人人都会Web3D开发。

# 包含其它元素的块引用

块引用可以包含其他Markdown格式的元素。并非所有元素都可以使用-需要进行实验以查看哪些元素有效。

> #### Verge3D应用领域
> 
> - 3D产品展示
> - 在线教育
> - 以及*游戏*等领域
> 
> Verge3D是社区驱动的。
1
2
3
4
5
6
7

输出结果为:

# Verge3D应用领域

  • 3D产品展示
  • 在线教育
  • 以及游戏等领域

Verge3D是社区驱动的。

# 列表

可以将项目组织成有序和无序列表。

# 有序列表

要创建有序列表,请在内容项前添加数字和点号。数字不必按数字顺序排列,但列表应以数字开头。

Markdown HTML 输出
1. 第一项
2. 第二项
3. 第三项
4. 第四项
<ol>
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
<li>第四项</li>
</ol>
1. 第一项
2. 第二项
3. 第三项
4. 第四项
1. 第一项
1. 第二项
1. 第三项
1. 第四项
<ol>
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
<li>第四项</li>
</ol>
1. 第一项
2. 第二项
3. 第三项
4. 第四项
1. 第一项
8. 第二项
3. 第三项
5. 第四项
<ol>
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
<li>第四项</li>
</ol>
1. 第一项
2. 第二项
3. 第三项
4. 第四项
1. 第一项
2. 第二项
3. 第三项
    1. 缩进项
    2. 缩进项
4. 第四项
<ol>
<li>第一项</li>
<li>第二项</li>
<li>第三项
<ol>
<li>1.缩进项</li>
<li>2.缩进项</li>
</ol>
</li>
<li>第四项</li>
</ol>
1. 第一项
2. 第二项
3. 第三项
    1. 缩进项
    2. 缩进项
4. 第四项

# 无序列表

要创建无序列表,请在内容项前添加中划线(-),星号(*)或加号(+)。缩进一个或多个项目以创建嵌套列表。

Markdown HTML 输出
- 第一项
- 第二项
- 第三项
- 第四项
<ul>
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
<li>第四项</li>
</ul>
  • 第一项
  • 第二项
  • 第三项
  • 第四项
* 第一项
* 第二项
* 第三项
* 第四项
<ul>
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
<li>第四项</li>
</ul>
  • 第一项
  • 第二项
  • 第三项
  • 第四项
+ 第一项
* 第二项
- 第三项
+ 第四项
<ul>
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
<li>第四项</li>
</ul>
  • 第一项
  • 第二项
  • 第三项
  • 第四项
- 第一项
- 第二项
- 第三项
    - 缩进项
    - 缩进项
- 第四项
<ul>
<li>第一项</li>
<li>第二项</li>
<li>第三项
<ul>
<li>缩进项</li>
<li>缩进项</li>
</ul>
</li>
<li>第四项</li>
</ul>
  • 第一项
  • 第二项
  • 第三项
    • 缩进项
    • 缩进项
  • 第四项

# 在列表中添加元素

要在保留列表连续性的同时在列表中添加另一个元素,请将该元素缩进四个空格或一个制表符,如以下示例所示。

# 添加段落

-    这是第一项
-    这是第二项
    这是插入的段落
-    这是第三项
1
2
3
4

输入结果为:

  • 这是第一项
  • 这是第二项 这是插入的段落
  • 这是第三项

# 添加块引用

-    这是第一项
-    这是第二项
    > 这是插入的块引用
-    这是第三项
1
2
3
4

输出结果为:

  • 这是第一项
  • 这是第二项
> 这是插入的块引用
  • 这是第三项

# 添加代码块

代码块通常缩进四个空格或一个制表符。当它们在列表中时,将它们缩进八个空格或两个制表符。

1. 打开文件
2. 在第21行找到以下代码

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

3. 修改title为网站名称
1
2
3
4
5
6
7
8
9

输出结果为:

  1. 打开文件

  2. 在第21行找到以下代码

     <html>
       <head>
         <title>Test</title>
       </head>
    
  3. 修改title为网站名称

# 添加图片

1. 点击左上角图片。
2. 它看起来像这样:
   ![优惠](/icons/youhuima-zjbku.jpg)
3. 打开购买详情页面。
1
2
3
4

输出结果为:

  1. 点击左上角图片。
  2. 它看起来像这样: 优惠
  3. 打开购买详情页面。

# 代码

要将文本表示为代码,请将其括在反引号(`)中。

Markdown HTML 输出
At the command prompt, type `nano`. At the command prompt, type <code>nano</code>. At the command prompt, type nano.

# 转义反引号

如果要表示为代码的单词或短语包含一个或多个反引号,则可以通过将单词或短语用双反引号(``)括起来来进行转义。

Markdown HTML 输出
``在Markdown中使用`code`。`` <code>在Markdown中使用`code`。</code>. 在Markdown中使用`code`。

# 代码块

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

    <div>
      <h2>标题</h2>
      <p>内容</p>
    </div>
1
2
3
4

输出结果为:

<div>
  <h2>标题</h2>
  <p>内容</p>
</div>

TIP

注意:要创建不缩行的代码块,请使用受保护的代码块

# 分割线

要创建分割线,请单独在一行上使用三个或更多星号(***),破折号(---)或下划线(___)。

***

---

_________________
1
2
3
4
5

输出结果为:


# 分割线最佳实践

为了兼容性,请在分割线之前和之后空一行。

✅正确做法 ❌错误做法
分割线之前空一行...

---

分割线之后再空一行
没空一行,会变成标题
---
不要这样做

# 链接

要创建链接,请将链接文本括在方括号中(例如[Duck Duck Go]),然后立即在其后加上括号中的URL(例如(https://zjbcool.com))。

我在[宅家呗网](https://zjbcool.com)学习Verge3D课程。
1

输出结果为:

我在宅家呗网学习Verge3D课程。

# 添加标题

可以选择为链接添加标题。当用户将鼠标悬停在链接上时,这将显示为工具提示。要添加标题,请将其括在URL后面的括号中。

我在[宅家呗网](https://zjbcool.com "Verge3D教程")学习Verge3D课程。
1

输出结果为:

我在宅家呗网学习Verge3D课程。

# 网址和电子邮件地址

要将URL或电子邮件地址快速转换为链接,请将其括在尖括号中。

<https://zjbcool.com>

<287818433@qq.com>
1
2
3

输出结果为:

https://zjbcool.com

287818433@qq.com

# 格式化链接

为了强调链接,请在方括号和括号之前和之后添加星号。要将链接表示为代码,请在方括号中添加反引号。

我喜欢 **[宅家呗](https://zjbcool.com)**。

我在这里 *[学习Verge3D](https://zjbcool.com/v3d-tutorials/v3d-tutorials.html)*。

学习Markdown[`代码`](#代码)
1
2
3
4
5

输出结果为:

我喜欢 宅家呗

我在这里 学习Verge3D

学习Markdown的代码

# 参考式链接 Reference-style

参考式链接是一种特殊的链接,它使URL在Markdown中更易于显示和阅读。参考式链接分为两部分:与文本保持内联的部分以及在文件其他位置的部分,以使文本易于阅读。

# 格式化链接的第一部分

参考式链接的第一部分使用两组括号进行格式设置。第一组方括号包围应显示为链接的文本。第二组括号显示了一个标签,用于指向存储在文档其他位置的链接。

尽管不是必需的,但可以在第一组和第二组支架之间包含一个空格。第二组括号中的标签不区分大小写,可以包含字母,数字,空格或标点符号。

这意味着以下示例格式对于链接的第一部分大致相同:

  • [hobbit-hole][1]
  • [hobbit-hole][1]

# 格式化链接的第二部分

参考式链接的第二部分使用以下属性设置格式:

  1. 标签放在方括号中,后面紧跟一个冒号和至少一个空格(例如[label]:)。
  2. 链接的URL,可以选择将其括在尖括号中。
  3. 链接的可选标题,可以将其括在双引号,单引号或括号中。

这意味着以下示例格式对于链接的第二部分几乎都是等效的:

  • [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文档中的任何位置。有些人将它们放在出现的段落之后,而其他人则将它们放在文档的末尾(例如尾注或脚注)。

# 将各部分放在一起的示例

假设您添加一个URL作为到段落的标准链接,并且在Markdown中看起来像这样:

[Verge3D](https://www.soft8soft.com/3dweb/24 'verge3d')由俄罗斯的soft8soft公司开发,这是个支持Blender、3dsMax、Maya三维资产预览、导出,支持在本地环境下开发,能够一键将3D内容发布网络上的Web3D创作套件。
1

尽管它可能指向有趣的附加信息,但显示的URL除了增加了阅读难度外,实际上并没有为现有原始文本增加多少。要解决此问题,您可以改成如下格式设置网址:

[Verge3D](1)由俄罗斯的soft8soft公司开发,这是个支持Blender、3dsMax、Maya三维资产预览、导出,支持在本地环境下开发,能够一键将3D内容发布网络上的Web3D创作套件。

[1]:https://www.soft8soft.com/3dweb/24 'verge3d'
1
2
3

以上两种方式输出的结果是一样的:

Verge3D由俄罗斯的soft8soft公司开发,这是个支持Blender、3dsMax、Maya三维资产预览、导出,支持在本地环境下开发,能够一键将3D内容发布网络上的Web3D创作套件。

链接的HTML为:

<a href='https://www.soft8soft.com/3dweb/24' title='verge3d'>Verge3D</a>
1

# 链接最佳实践

Markdown应用程序在如何处理URL中间的空格方面并不一致。为了兼容性,请用%20对所有空格进行URL编码。

✅正确做法 ❌ 错误做法
[link](https://www.example.com/my%20great%20page) [link](https://www.example.com/my great page)

# 图片

要添加图片,请添加感叹号(!),然后在括号中添加替代文本,并在括号中添加图片资源的路径或URL。可以选择在括号中的URL之后添加标题。

![logo](https://zjbcool.com/icons/logo-zjbcool-88.jpg 'logo')
1

输出结果为:

logo

# 图片链接

要将链接添加到图片,请将图片的Markdown括在方括号中,然后在括号中添加链接。

[![Logo](https://zjbcool.com/icons/logo-zjbcool-88.jpg 'logo')](https://zjbcool.com)

输出结果为:

Logo

# 转义字符

若要显示原义字符,请在字符前面添加反斜杠(\),否则将用于设置Markdown文档中的文本格式。

\* 没有反斜杠这就是一个无序列表。
1

输出结果为:

* 没有反斜杠这就是一个无序列表。

# 可转义的字符

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

字符 名称
\ 反斜杠
` 反引号
* 星号
_ 下划线
{} 大括号
[] 中括号
() 小括号
# 井号
+ 加号
- 减号
.
! 感叹号
| 竖线

# HTML

许多Markdown应用程序允许在Markdown格式的文本中使用HTML标签。如果您更喜欢某些HTML标记而不是Markdown语法,这将很有帮助。例如,有些人发现将HTML标签用于图像更容易。当需要更改元素的属性(例如指定文本的颜色或更改图像的宽度)时,使用HTML也很有帮助。

要使用HTML,请将标记放置在Markdown格式文件的文本中。

这是**粗体**,这是<em>斜体</em>
1

输出结果为:

这是粗体,这是斜体

# HTML最佳实践

出于安全原因,并非所有Markdown应用程序都支持Markdown文档中的HTML。如有疑问,请查阅您的Markdown应用程序的文档。某些应用程序仅支持HTML标签的子集。

使用空行将块级HTML元素(如<div>,<table>,<pre>和<p>)与周围的内容分开。尽量不要使标签带有标签或空格缩进-可能会干扰格式。

不能在块级HTML标记内使用Markdown语法。例如,<p>斜体和**粗体**</ p>将不起作用。

上次更新: 2020-7-9 12:45:24