## Markdown语法图文全面详解
# 目录
简介:
md格式是近几年流行起的一个纯文本格式,对于一个程序员来说,用md格式代替word、txt等格式用来写说明文档或者blog,目前github以及CSDN都支持md格式书写blog了,用着用着就开始喜欢上了。
本篇文章主要就是记录一下md格式的语法,md语法在几乎所有支持md格式的软件都是通用的,而快捷键是在MarkdownPad2软件环境下。
[TOC]
### 1、Markdown常用快捷键
功能| 快捷键 |
-|-|-
标题 | ctrl+1 用#号表示,#一级标题,##表示二级标题,依次类推,快捷键ctrl+1、2、3、4… |
加粗 |左右用**包裹起来,快捷键 Ctrl + B |
斜体 | 左右用*包裹起来,快捷键Ctrl + I |
引用 | 在文字开头添加 > 表示引用说明,快捷键 Ctrl + Q |
插入链接 | 快捷键 Ctrl + L |
插入代码 | 可以通过tab或者4个空格缩进表示,也可以通过“`将代码包裹起来表示代码块,快捷键 Ctrl + K |
插入图片 | 快捷键 Ctrl + G |
提升标题 | Ctrl + H |
有序列表 | 通过-加一个空格表示,后面跟内容,快捷键 Ctrl + U |
无序列表 | 通过数字加一个.以及一个空格表示,后面跟内容,快捷键ctrl+shift+o |
横线 | 快捷键 Ctrl + R |
撤销 | 快捷键 Ctrl + Z |
重做 | 快捷键 Ctrl + Y |
时间戳 | 快捷键 Ctrl + T |
加粗加斜体 | 左右用***包裹起来,快捷键ctrl+i,ctrl+b,先后顺序无所谓 |
生成目录 | [TOC]按回车 |
### 2、基本语法
##### 2.1 字体设置斜体、粗体、删除线
```
这里显示正文
*这里显示的是斜体*
_这里显示的倾斜体_
**这里显示的文字是加粗了**
***这里的文字是倾斜加粗的***
~~这里的文字是加下划线的~~
```
显示如下
这里显示正文
*这里显示的是斜体*
_这里显示的倾斜体_
**这里显示的文字是加粗了**
***这里的文字是倾斜加粗的***
~~这里的文字是加下划线的~~
##### 2.2 分级标题
写发1:
Markdown 支持两种标题的语法,类 Setext 和类 atx 形式。
类 Atx 形式则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶,例如:
```
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
这个写法和 **文字**效果是一样的
```
输出的结果:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
写法2:
Markdown 支持两种标题的语法,类 Setext 和类 atx 形式。
类 Setext 形式是用底线的形式,利用 = (最高阶标题)和 - (第二阶标题),任何数量的 = 和 - 都可以有效果。例如:
```
这是一个一级标题
============================
```
输出结果:
这是一个一级标题
============================
或者
```
二级标题
-----------
```
输出结果:
二级标题
---------------
##### 2.3 链接
(1)插入本地图片链接的方法有两种:
![图片描述](图片路径"title")
![图片描述](图片路径)
注:图片描述可以不写。
如本地插入图片示范:
```
![插入下一层级目录下的图片](/短视频封面/083.jpg)
![插入同级目录下的图片](/原创扁平方盒-逐浪字体.jpg)
```
效果:
![插入下一层级目录下的图片](/短视频封面/083.jpg)
![插入同级目录下的图片](/原创扁平方盒-逐浪字体.jpg)
(2)插入互联网上图片
![图片描述](图片网络路径)
注:图片描述与插入本地图片一样,描述可以不写。
写法:
```
![图片描述](https://www.z01.com/template/office/style/images/hezi5.jpg)
```
效果:
![图片描述](https://www.z01.com/template/office/style/images/hezi5.jpg)
(3)自动连接
Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用<>包起来, Markdown 就会自动把它转成链接。也可以直接写,也是可以显示成链接形式的。
链接内容定义的形式为:
方括号(前面可以选择性地加上至多三个空格来缩进),里面输入链接文字
接着一个冒号
接着一个以上的空格或制表符
接着链接的网址
选择性地接着 title 内容,可以用单引号、双引号或是括弧包着
下面这三种链接的定义都是相同:
```
[这是一个链接]: http://www.z01.com/ "这里是链接的title内容"
[这是一个链接]: http://www.z01.com/ '这里是链接的title内容'
[这是一个链接]: http://www.z01.com/ (这里是链接的title内容)
```
```
这是一个链接 [这是逐浪软件官网链接](http://www.z01.com/).
```
结果:
这是一个链接 [这是逐浪软件官网链接](http://www.z01.com/).
在链接的时候也可以选择加上title属性,title 属性是选择性的,链接名称可以用字母、数字和空格,但是不分大小写:
```
这是一个链接 [这是逐浪软件官网链接](http://www.z01.com/ "欢迎访问逐浪软件官网").
```
结果:
这是一个链接 [这是逐浪软件官网链接](http://www.z01.com/ "欢迎访问逐浪软件官网")
输出 HTML 为:
```
<p>这是一个链接 <a href="http://www.z01.com/" title="欢迎访问逐浪软件官网">
这是逐浪软件官网链接</a>.</p>
```
##### 2.4 代码块
对于程序员来说代码功能是必不可少的,插入程序代码的方式有两种,一种是利用缩进(tab), 另一种是利用英文“`”符号(一般在ESC键下方,和~同一个键)包裹代码。
如果要标记一小段行内代码,你可以用反引号把它包起来(```),例如:
Use the `printf()` function.
会产生:
<p>Use the <code>printf()</code> function.</p>
如果要在代码区段内插入反引号,你可以用多个反引号来开启和结束代码区段:
``There is a literal backtick (`) here.``
这段语法会产生:
<p><code>There is a literal backtick (`) here.</code></p>
在代码区块里面, & 、 < 和 > 会自动转成 HTML 实体,这样的方式让你非常容易使用 Markdown 插入范例用的 HTML 原始码,只需要复制贴上,剩下的 Markdown 都会帮你处理,Markdown会把下面这段:
```
`Please don't use any `<blink>` tags.
```
转为:
```<p>Please don't use any <code><blink></code> tags.</p>```
你也可以这样写:
``` —` is the decimal-encoded equivalent of `—`.```
以产生:
```
`Please don't use any `<blink>` tags.
```
```
<p><code>&#8212;</code> is the decimal-encoded
equivalent of <code>&mdash;</code>.</p>
```
##### 2.5 分割线
你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:
```
* * *
***
*****
- - -
---------------------------------------
```
##### 2.6 强调
Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 * 或 _ 包围的字词会被转成用 标签包围,用两个*或_包起来的话,则会被转成,例如:
```
*single asterisks*
_single underscores_
**double asterisks**
__double underscores__
```
会转成:
```
<em>single asterisks</em>
<em>single underscores</em>
<strong>double asterisks</strong>
<strong>double underscores</strong>
```
你可以随便用你喜欢的样式,唯一的限制是,你用什么符号开启标签,就要用什么符号结束。
强调也可以直接插在文字中间:
```un*frigging*believable ```
但是如果你的 \* 和 _ 两边都有空白的话,它们就只会被当成普通的符号。
如果要在文字前后直接插入普通的星号或底线,你可以用反斜线:
``` \*this text is surrounded by literal asterisks\* ```
##### 2.7 引用
在被引用的文本前加上>符号,以及一个空格就可以了,如果只输入了一个>符号会产生一个空白的引用。
(1)基本使用
使用如下图所示:
```
> 文字引用
> 文字引用
> 文字引用
> 文字引用
> 文字引用
>
> 文字引用
> 文字引用
> 文字引用
```
显示如下:
> 文字引用
> 文字引用
> 文字引用
> 文字引用
> 文字引用
>
> 文字引用
> 文字引用
> 文字引用
(2)嵌套引用
```
>>>第一层嵌套引用
>>第二层嵌套引用
>第三层嵌套引用
```
显示如下:
>>> 第一层嵌套引用
>> 第二层嵌套引用
>> 第三层嵌套引用
(3)引用其它要素
引用的区块内也可以使用其他的 Markdown 语法,包括标题、列表、代码区块等。
使用如图所示:
##### 2.8 列表
Markdown 支持有序列表和无序列表。
无序列表使用星号、加号或是减号作为列表标记:
不管是无序列表还是有序列表,符号后面一定要有一个空格,起到缩进的作用。
(1)无序列表
使用 星号*,加号+,减号- 表示无序列表。
```
* 无序列表文字
* 无序列表文字
* 无序列表文字
```
等同于:
```
+ 无序列表文字
+ 无序列表文字
+ 无序列表文字
```
也等同于:
```
- 无序列表文字
- 无序列表文字
- 无序列表文字
```
最后显示结果相同,显示如下:
* 无序列表文字--前是*号的显示
* 无序列表文字--前是*号的显示
* 无序列表文字--前是*号的显示
+ 无序列表文字--前是+号的显示
+ 无序列表文字--前是+号的显示
+ 无序列表文字--前是+号的显示
- 无序列表文字--前是-号的显示
- 无序列表文字--前是-号的显示
- 无序列表文字--前是-号的显示
(2)有序列表
有序列表则使用数字接着一个英文句点:
注意:英文句点后面一定要有一个空格,起到缩进的作用。
```
1. 有序列表
2. 有序列表
3. 有序列表
```
显示结果如下:
1. 有序列表
2. 有序列表
3. 有序列表
(3)无序列表和有序列表同时使用
```
* 这是无序列表1
- 这是无序列表2
+ 这是无序列表3
1. 这是有序列表1
2. 这是有序列表2
* 1. 有序无序混合使用1
+ 2. 有序无序混合使用2
```
* 这是无序列表1
- 这是无序列表2
+ 这是无序列表3
1. 这是有序列表1
2. 这是有序列表2
* 1. 有序无序混合使用1
+ 2. 有序无序混合使用2
(4)注意事项
在使用列表时,只要是数字后面加上英文的点,就会无意间产生列表,比如2020.5.25 这时候想表达的是日期,有些软件把它被误认为是列表。解决方式:在每个点前面加上\就可以了。如下图所示:
```2020\. 05\. 25. 今天是2020年5月25日 ```
显示如下:
2020\. 05\. 25. 今天是2020年5月25日
##### 2.9 表格
(1)极简模式
```
水果名称| 价格 | 数量
-|-|-
香蕉 | $1 | 5 |
苹果 | $1 | 6 |
草莓 | $1 | 7 |
```
效果如下:
水果名称| 价格 | 数量
-|-|-
香蕉 | $1 | 5 |
苹果 | $1 | 6 |
草莓 | $1 | 7 |
(2)简单方法
```
name | 111 | 222 | 333 | 444
- | :-: | :-: | :-: | -:
aaa | bbb | ccc | ddd | eee|
fff | ggg| hhh | iii | 000|
```
效果如下:
name | 111 | 222 | 333 | 444
- | :-: | :-: | :-: | -:
aaa | bbb | ccc | ddd | eee|
fff | ggg| hhh | iii | 000|
(3)原生方法
```
name | 111 | 222 | 333 | 444
:-: | :-: | :-: | :-: | :-:
aaa | bbb | ccc | ddd | eee|
fff | ggg| hhh | iii | 000|
```
效果如下:
name | 111 | 222 | 333 | 444
:-: | :-: | :-: | :-: | :-:
aaa | bbb | ccc | ddd | eee|
fff | ggg| hhh | iii | 000|
## 其他
##### 反斜杠
Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用 `` 标签),你可以在星号的前面加上反斜杠:
``` \*literal asterisks\* ```
Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:
```
\ 反斜线
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 惊叹号
```