Markdown语法
Markdown是一种轻量级标记语言,可用于向纯文本文档添加格式元素。相比于Word文档更加轻量级,比普通文本文件多了更多格式化内容。
文章目录
1. Markdown导入
1.1 Markdown是什么
Markdown的目标是人人们能够使用易读、易写的纯文本格式来编写文档。Markdown由一些简单的符号(比如*
、/
、#
等)组成的用于排版的标记语言,其最终要的特点就是可读性强。
Markdown语法主要语法包括以下:
标题
符号 | 作用 |
---|---|
# | H1 一级标题 |
## | H2 二级标题 |
### | H3 三级标题 |
#### | H4 四级标题 |
##### | H5 五级标题 |
###### | H6 六级标题 |
文字格式
符号 | 作用 |
---|---|
**..** (例:**粗体** ) | 加粗两对星号中间文字 |
*..* (例:*斜体* ) | 使两个星号中间文字为斜体 |
无序列表
使用*
、+
、-
均可
*
+
-
有序列表
使用数字1、2、3…
图片
使用如下格式
![图片替代文字,用于图片无法访问时显示](图片地址,可以是绝对路径,相对路径或互联网url)
链接
使用如下格式
[链接文字](链接地址 *Title*)
引用
使用如下格式
> 引用内容
代码
使用如下格式
```代码类别
代码内容
```
分割线
使用如下格式
***(星号)
---(短横线)
___(下划线)
Markdown内可以使用HTML标签,以实现一些特殊需求(如设置图片的大小)
1.2 为什么要使用Markdown
当我们对文章的排版没有特殊需求,且不想花费太多时间在排版上,就可以使用Markdown。
如果对排版要求高,比如对字号、段落、图片、表格等方面排版要求较高,还得使用专业的编辑软件,如Word。
2. Markdown语法
2.1 基础语法
2.1.1 字体
标题
在Markdown语法中,标题支持使用两种标记:底线(-/=)和#
使用底线的语法如下:
标题内容
========
或者
标题内容
--------
需要注意的是:
- 底线是
=
表示是一级标题。 - 底线是
-
表示是二级标题。 - 底线符号的数量最少为2个。
- 使用底线的语法只支持两级标题。
使用#
的语法如下
# + 空格 + 标题内容
需要注意的是:
- 在行首插入
#
可标记出标题。 #
的个数表示了标题的等级。- 建议在
#
后加一个空格。 - Markdown中最多只支持前六级标题。
建议使用#
标记标题,而不是===
或者---
,后者更难阅读和维护。
保持间距,建议标题的前后都要空一行(除非标题在文档开头);#
与标题文本之间也要有空格,否则也会导致阅读困难。
粗体和斜体
在Markdown中,粗体由两个*
或者两个_
包裹,斜体由一个*
或者一个_
包裹。
粗体格式语法如下:
**加粗内容**
或者
__加粗内容__
斜体格式语法如下:
*斜体内容*
或者
_斜体内容_
建议粗体使用两个*
包裹,斜体使用一个*
包裹,因为*
具有更好的阅读性及常见。
2.1.2 段落与换行
Markdown中的段落由一行或多行文本组成,不同的段落之间使用空行来标记。
语法说明:
- 如果行与行之间没有空行,则会被视为同一段落。
- 如果行与行之间有空行,则会被视为不同的段落。
- 空行是指行内什么都没有,或者只有空格和制表符。
- 如果想在段内换行,则需要再上一行的结尾插入两个以上的空格然后按回车键。
使用规范:
为了便于阅读,应该限制每行字符的数量,通常每行不超过80个字符,可以在编辑器中进行设置。
关于换行,建议如下:
- 当超过80个字符后进行换行。
- 在一句话结束(。或!或?)之后换行。
- 当URL较长时换行。
列表
在Markdown中支持使用有序列表和无序列表,有序列表用数字序号+英文句号+空格+列表内容来标记,无序列表由*
/+
/-
+空格+列表内容来标记。
有序列表的语法如下:
数字序号 + 英文句号 + 空格 + 列表内容
无序列表的语法如下:
*/+/- + 空格 + 列表内容
注意:使用*
/+
/-
来标记无序列表的效果是相同的。
嵌套列表的语法如下:
+ 第一层列表
TAB + 第二层列表
TAB + TAB + 第三层列表
语法说明:
- 列表中可以嵌套列表。
- 有序列表和无需列表也可以互相嵌套。
使用规范:
- 建议使用
-
来标记无序列表,因为*
容易跟粗体和斜体混淆。 - 如果一个列表中所有的列表项都没有换行,建议使用一个空格。
- 如果列表项有换行,则建议给无序列表使用三个空格,给有序列表使用两个空格。
- 如果一个列表的每个列表项都只有一行,建议列表项之间不要有空行。
- 如果列表项中有换行,建议在列表项之间空一行,这样会比较容易区分多行列表项的开始和结束。
- 建议在列表前/后都空一行。
- 数字、字符、符号列表使用英文半角句号,句号加空格。
分隔线
在Markdown中,分隔线由三个以上的*
/-
/_
来标记。
语法说明:
- 分隔线须使用至少3个以上的
*
/-
/_
来标记。 - 行内不能有其他的字符。
- 可以在标记符中间加上空格。
2.1.3 图片
插入图片的语法如下。
![图片替代文字](图片地址)
语法说明如下:
- 图片替代文字在图片无法正常显示时显示,正常情况下可以为空。
- 图片地址可以是本地图片的路径也可以是网络图片的地址。
- 本地图片支持相对路径和绝对路径两种方式。
2.1.4 链接
文字链接
文字链接就是把链接地址直接卸载文本中。语法是用方括号包裹链接文字,后面紧跟着括号包裹的链接地址。
[链接文字](链接地址)
这样的写法是没有任何问题的,但由于链接跟文字都写在了一起,如果链接过多会导致可读性差一些。
另一种方式
在日常生活中我们经常使用的网址有 [Google]、[GitHub]和[Stack Overflow]
[Google]: https://www.google.com/
[GitHub]: https://github.com/
[Stack Overflow]:
https://stackoverflow.com/?utm_source=rss&utm_medium=rss
这种把链接在某个地方统一定义好,然后在正文中通过“变量”来引用,增强了可读性,这种方法称为引用链接。
引用链接
引用链接是把链接地址作为“变量”先在Markdown文件的页尾定义好,然后在正文中进行引用。
语法说明:
- 链接标记可以有字母、数字、空格和标点符号。
- 链接标记不区分大小写。
- 定义的链接内容可以放在当前文件的任意位置,建议放在页尾。
- 当链接地址为网络地址时要以
http/https
开头,否则会被识别为本地地址。
网络链接
在Markdown中,将网络地址或邮箱地址使用<>
包裹起来会被自动转换为超链接。
语法:
<URL 或邮箱地址>
使用规范
- 在Markdown中,链接标题的信息应该更丰富,在标题中应该可以知道链接的内容,要使用有意义的链接标题。
- 建议使用
<>
包裹自动链接,这种方式更为通用。 - 自动链接要以
http/https
开头。
2.1.5 行内代码与代码块
行内代码
在Markdown中,行内代码使用``包裹,语法如下:
`代码`
代码块
在Markdown中,代码亏以Tab键或4个空格开头。
注意:因为代码块使用Tab键或4个空格开头的效果并不直观,很多扩展语法(GFM)提供了围栏代码块,并且支持语法高亮。
使用规范
除行内代码可以使用`包裹意外,如果我们想转译或强调某些字符,也可以使用该符号包裹。
如果代码超过一行,则应该使用围栏代码块(扩展语法),并显式地声明语言,这样做便于阅读,并且可以显示语法高亮。
```python
def print_name():
print("Markdown")
```
2.1.6 引用
语法
在 Markdown中,引用由>
+ 引用内容来标记
> 引用内容
语法说明:
- 多行引用也可以在每一行的开头都插入
>
。 - 在引用中可以嵌套引用。
- 在引用中可以使用其他的Markdown语法。
- 段落与换行的格式在引用中也是适用的。
- 建议在引用的标记符号
>
之后添加一个空格。 - 建议每一行引用都是用符号
>
- 不要在引用中添加空行。
2.1.7 转义
当我们想在Markdown文件中插入一些标记符号,但又不想让这些符号被渲染时,可以使用\
进行转义。