基础语法

字体

标题

支持:底线(-/=) 和 #

底线的语法
1
2
标题内容
======

1
2
标题内容
--------
  1. =表示一级标题
  2. -表示二级标题
  3. 底线符号的数量至少2个
  4. 这种语法只支持这两级标题
#语法
1
# + 空格 + 标题内容
  1. 在行首插入#可标记出标题
  2. #的个数表示了标题的等级
  3. 建议在#后加一个空格
  4. Markdown中最多只支持前六级标题

使用规范:

1) 推荐使用#的语法。
2) 标题的前后都要空1行(除非标题在文档开头)。
3) #与标题文本之间也要有1个空格,否则会导致阅读困难。
4) 不要有多余的空格,结尾不要有空格。
5) 建议标题的结尾不要有标点符号。
6) 建议标题要尽量简短,方便引用。

粗体和斜体

粗体由两个* 或两个包裹,斜体由1个* 或1个包裹。

粗体
1
2
3
**加粗内容**

__加粗内容__
斜体
1
2
3
*斜体内容*

_斜体内容_

使用规范:

1) 建议粗体使用2个*包裹,斜体使用1个* 包裹。
2) 在粗体和斜体语法标记的内部,建议不要有空格。

段落与换行

1) 如果行与行之间没有空行,则会被视为同一段落。
2) 如果行与行之间有空行,则会被视为不同的段落。
3) 空行是指行内什么都没有,或者只有空格和制表符。

列表

支持:有序列表和无序列表

有序列表
1
2
3
数字序号(1 2 ...) + 英文句号 + 空格 + 列表内容

( 1) 2) ...) + 空格 + 列表内容
无序列表
1
*/+/- + 英文句号 + 空格 + 列表内容

使用规范:建议使用-标记无序列表,*容易与斜体混淆,+不流行。

列表嵌套
1
2
3
第一层列表
TAB + 第二层列表
TAB + TAB + 第三层列表

语法说明:

1) 列表中可以嵌套列表。
2) 有序列表和无序列表也可以互相嵌套。

列表使用规范

1) 如果一个列表中的每个列表项都只有1行,建议列表项之间不要有空行。
2) 如果列表项中有换行,建议在列表项之间空1行。
3) 建议在列表前/后都空1行。
4) 列表标记使用英文半角符句号.、右括号)
5) 列表标记与列表内容的空格不能少;列表Enter换行默认生成新的列表项,列表项换行可Shift + Enter

1
2
3
4
5
6
7
# 列表的使用

1. 这个列表
有换行

2. 这个列表无换行

效果如下:

  1. 这个列表
    有换行

  2. 这个列表无换行

分隔线

语法:

1) 分隔线须使用至少3个以上的 */-/_ 来标记。
2) 行内不能有其他的字符。
3) 可以在标记符中间加上空格。
4) 建议同一文章使用一样的符号标记分隔线,且数量形式一样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 星号

***
* * * *
**********

# 减号

---
- - -
----------

# 下划线
___
_ _ _
__________

分隔线如下:


图片

1
2
3
4
5
6
7
![图片替代文字](图片地址 "【可选参数】鼠标悬停于图片的提示信息")

图片也可以引用链接

![图片替代文字][pic]

[pic]: url "【可选】"

语法:

1) 图片替代文字在图片无法正常显示时会比较有用,正常情况下可以为空。
2) 图片地址可以是本地图片的路径也可以是网络图片的地址。
3) 本地图片支持相对路径和绝对路径两种方式。

链接

文字链接

文字链接就是把链接地址直接写在文本中。语法是用方括号包裹链接文字,后面紧跟着括号包裹的链接地址。

1
[链接文字](链接地址 "【可选参数】鼠标悬停于链接文字的提示信息")
1
在日常工作中我们常用的地址有[baidu](https://www.baidu.com)和[GitHub](https://www.github.com)

引用链接

引用链接是把链接地址作为“变量”先在Markdown文件的页尾定义好,然后在正文中进行引用。

1
2
3
4
5
6
7
8
9
10
11
在正文中引用链接标记可以理解为引用定义好的变量;

[链接文字][链接标记]

或者

[链接文字也是链接标记]

在底部定义链接标记,可以理解为定义一个地址变量;

[链接标记]:链接地址

语法说明:

1) 链接标记可以有字母、数字、空格和标点符号。
2) 链接标记不区分大小写。
3) 定义的链接内容可以放在当前文件的任意位置,建议放在页尾。
4) 当链接地址为网络地址时要以 http/https开头,否则会被识别为本地地址。

1
2
3
在日常工作中我们常用的地址有[百度][baidu]和[GitHub]。
[baidu]:https://www.baidu.com/
[GitHub]:https://www.github.com/

在日常工作中我们常用的地址有百度GitHub

网址链接

在Markdown中,将网络地址或邮箱地址使用<>包裹起来会被自动转换为超链接。

1
<URL  邮箱地址>

https://www.baidu.com
使用规范:

1) 建议链接标题有意义
2) 使用<>包裹自动连接,虽然不使用也能连接
3) 自动连接要以http/https开头

行内代码与代码块

行内代码

1
`代码`

代码块

在Markdown中,代码块以Tab键或4个空格开头。

1
2
3
4
5
6
7
8
9
以 Tab 键开头:
def test(){
print('hello')
}

以 4 个空格开头
def test(){
print('hello')
}

Tip: 因为代码块使用Tab键或4个空格开头的效果不够直观,很多扩展语法(如GFM)提供了围栏代码块,并且支持语法高亮。

使用规范:

1) 除行内代码可以使用`包裹以外,如果我们想转义或强调某些字符,也可以使用`包裹。

2) 如果代码超过1行,请使用围栏代码块(扩展语法),并显式地声明语言,这样做便于阅读,并且可以显示语法高亮。

3) 如果我们编写的是简单的代码片段,使用4个空格缩进的代码块也许更清晰。

4) 很多Shell命令都要粘贴到终端中去执行,因此最好避免在Shell命令中使用任何换行操作;
可以在行尾使用一个\,这样既能避免命令换行,又能提高源码的可读性。

5) 建议不要在没有输出内容的Shell命令前加$。
在命令没有输出内容的情况下,$是没有必要的,因为内容全是命令,我们不会把命令和输出的内容混淆。
推荐:pipenv shell
不推荐:$ pipenv shell

6) 建议在有输出内容的Shell命令前加上$,这样会比较容易区分命令和输出的内容。

推荐:

1
2
$ echo "test"
test

不推荐:

1
2
echo "test"
test

引用

在Markdown中,引用由>来标记。

1
> 引用内容

语法说明:

1) 多行引用也可以在每一行的开头都插入>
2) 在引用中可以嵌套引用。
3) 在引用中可以使用其他的Markdown语法。
4) 段落与换行的格式在引用中也是适用的。

使用规范:

1) 建议在引用的标记符号>之后添加一个空格。
2) 建议每一行引用都使用符号>
3) 不要在引用中添加空行。

转义

当我们想在Markdown文件中插入一些标记符号,但又不想让这些符号被渲染时,可以使用\进行转义。

1
\特殊符号

可被转义的特殊符号:

  • \ 反斜线
  • ` 反引号
  • * 星号
  • _ 底线
  • {} 花括号
  • [] 方括号
  • () 圆括号
  • # 井字号
  • + 加号
  • - 减号
  • . 英文句号
  • ! 英文感叹号

扩展语法GFM

在众多Markdown扩展语法中,GitHub Flavored Markdown(简称GFM)无疑是目前最流行的,它提供了包括表格、任务列表、删除线、围栏代码、Emoji等在内的标记语法

删除线

1
~~被删除的文字~~

被删除的文字

表情符号

使用:包裹表情代码即可

1
2
3
4
:表情代码:
:+1:
:-1:
:heart:

更多的表情符号请参考http://www.webpagefx.com/tools/emoji-cheat-sheet/

自动链接

在标准语法中,由<>包裹的URL地址被自动识别并解析为超链接,使用GFM扩展语法则可以不使用<>包裹。
注意:自动链接只识别以wwwhttp://开头的URL地址。
如果不想使用自动链接,也可以使用`包裹URL地址。

表格

1
2
3
4
| 表头1 |表头2 | 表头3 |
| :---- | :----: | ----: |
| 内容1 | 内容2 | 内容3 |
| 左对齐 | 居中对齐 | 右对齐 |
表头1 表头2 表头3
内容1 内容2 内容3
左对齐 居中对齐 右对齐

语法:

1) 单元格使用|来分隔,为了阅读更清晰,建议最前和最后都使用|。
2) 单元格和|之间的空格会被移除。
3) 表头与其他行使用-来分隔。
4) 表格对齐格式如下:

- 左对齐(默认):`:-`
- 右对齐:`-:`
- 居中对齐:`:-:`

5) 块级元素(代码区块、引用区块)不能插入表格中。

使用规范:

1) 在表格的前、后各空1行。
2) 在每一行最前和最后都使用|,每一行中的|要尽量都对齐。
3) 不要使用庞大复杂的表格,那样会难以维护和阅读。

补充:

1) 表格单元格换行可以用<br>
2) 默认和左对齐还是又区别的,默认表头会居中,左对齐表头是左对齐的。

任务列表

1
2
- [ ] 未勾选
- [x] 已勾选
  • [ ] 未勾选
  • [x] 已勾选

语法说明:

1) 任务列表以-+空格开头,由 [+空格/x+] 组成。
2) x可以小写,也可以大写,有些编辑器可能不支持大写,所以为避免解析错误,推荐使用小写的x。
3) 当方括号中的字符为空格时,复选框是未选中状态,为x时是选中状态。

围栏代码块

在基础语法中,代码块使用Tab键或4个空格开头;在扩展语法中,围栏代码块使用连续3个`或3个~包裹,还支持语法高亮,可读性和可维护性更强一些。

1
2
3
~~~
代码
~~~
1
2
3
```python
代码
```

锚点

锚点,也称为书签,用来标记文档的特定位置,使用锚点可以跳转到当前文档或其他文档中指定的标记位置。

Markdown会被渲染成HTML页面,在HTML页面中可以通过锚点实现跳转;GitHub、GitBook项目文档中的目录也是通过锚点实现跳转的。

1
[锚点描述](#锚点名)
1
2
<!-- 使用锚点 -->
语法参考 [基础语法](#基础语法) 或 [扩展语法](#扩展语法GFM)

使用锚点:
语法参考 基础语法扩展语法

语法说明:

1) 锚点名建议使用字母和数字,当然中文也是被支持的,但不排除有些网站支持得不够好。
2) 锚点名是区分英文大小写的。
3) 在锚点名中不能含有空格,也不能含有特殊字符。

Inline HTML

Markdown 是支持 HTML 的

1
<p>To reboot your computer, press <kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>del</kbd>.</p>

To reboot your computer, press ctrl+alt+del.

效果并不总是理想的

1
2
3
4
5
6
7
<dl>
<dt>Definition list</dt>
<dd>Is something people use sometimes.</dd>

<dt>Markdown in HTML</dt>
<dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
</dl>
Definition list
Is something people use sometimes.
Markdown in HTML
Does *not* work **very** well. Use HTML tags.

特殊HTML字符表

HTML原代码 显示结果
&lt; <
&gt; >
&#124; |
&amp; &
&quot;
&reg; ®
&copy; ©
&trade;
&#64; @
&nbsp;  不断行空白
&ensp;  半个空白位
&emsp;  一个空白位

表格单元格内换行:<br>

排版技巧

有句话叫“听过很多道理,却依然过不好这一生 ”,同样,看过很多文章,却还是不知道怎么排版才好看。其实好的排版就是好的设计,而设计总会遵循一定的规则,当没有人明确告诉我们什么是好的设计时,参考最通用、最流行的做法总是没错的,毕竟能被大众所接受,就是最好的证明。

关于空格

建议中文和英文之间加空格,中文/英文和数字之间也要加空格,不过有些编辑器和输入法(如百度输入法)会自动添加空隙,我们就没必要手动添加了,使用时请多注意。

加空格的情况

  • 英文标点符号(如, . ; : ?)与后面的字符之间需要加空格,与前面的字符之间不需要加空格。
1
2
推荐:The world is like a mirror: Frown at it and it frowns at you; smile, and it smiles too.
不推荐:The world is like a mirror:Frown at it and it frowns at you;smile,and it smiles too.
  • 当在中文、英文中使用>(半角)标识路径时,两边都需要加空格。
1
2
3
4
推荐:Erase data and settings in Settings > General > Reset > Erase all Content and Settings
不推荐:Erase data and settings in Settings> General>Reset >Erase all Content and Settings
推荐:抹掉所有内容和设置的操作步骤:设置 > 通用 > 还原 > 抹掉所有内容和设置
不推荐:抹掉所有内容和设置的操作步骤:设置>通用>还原>抹掉所有内容和设置

不加空格的情况

  • 中文标点符号和数字、中文、英文之间不需要添加空格。
1
2
推荐:MacBook Pro(15英寸,2016年年末)
不推荐:MacBook Pro (15英寸,2016年年末)
  • 数字和百分号之间不需要添加空格。
1
2
推荐:100%
不推荐:100 %
  • 数字和单位符号之间不需要添加空格。
1
2
推荐:1GB
不推荐:1 GB
  • 英文和数字组合成的名字之间不需要添加空格。
1
2
推荐:双核Intel Core i7处理器
不推荐:双核Intel Core i 7处理器
  • 当/(半角)表示“或”、“路径”时,与前后的字符之间均不加空格。

  • 货币符号后不加空格。

1
2
推荐:售价¥100
不推荐:售价¥ 100
  • 负号后不加空格。
1
2
推荐:1-2=-1
不推荐:1-2=- 1

全角和半角

全角:中文标点符号是全角,占两个字节。
半角:英文标点符号和数字是半角,占1个字节。
全角:,。;:!?
半角:,.;:!?

  • 在中文排版中,要使用全角标点符号。
  • 在英文排版中,要使用半角标点符号。

正确的英文大小写

错误的写法:IPhone7、MacOS
正确的写法:iPhone7、macOS

专有名词要使用正确的大小写,请参考它们的官方文档。
正确:macOS、iPhone、iPad Pro、Macbook Pro、iOS、GitHub