本文介绍的是Markdown的基本用法,从多份资料整理而来,测试IDE是Visual Studio Code。安装的相关插件有Markdown All in One、Markdown PDF、Markdown Preview Mermaid Support、markdownlint、Markdown TOC。
一、基本用法[1]
1. 标题
标题以#开头,一个#是一级标题,两个#是二级标题,以此类推。支持六级标题。
示例:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
也有一种方式[2],使用===或者---为分割。但是嘛,个人不太喜欢这种方式,觉得没有用#开头的表示方法清晰。
示例:
标题1
===
标题2
---
2. 字体
- 加粗,在文字左右用**包起来,快捷键Ctrl+B
- 斜体,在文字左右用*包起来,快捷键Ctrl+I(也支持左右用_包起来,不过默认配置是星号)
- 加粗斜体,在文字左右用***包起来,或者**_和_**包起来,就是把加粗和斜体的配置符加起来(注意顺序,**在外,_在内)
- 删除线,在文字左右用两个波浪号~~包起来,快捷键Alt+S
示例:
**加粗语句**
*斜体语句 1*
_斜体语句 2_
***加粗斜体语句 1***
**_加粗斜体语句 2_**
~~加删除线语句~~
3. 段落引用
在一段话之前加>就行。引用可以嵌套,比如两个>>,三个>>>。但是,不能像序号那样,用了下一级序号后返回上一级的。比如说,用了>>>后面的>>就无效了。不过想想也是,毕竟是为了引用文字嘛,不需要分层功能。
示例:
> 一层引用
>> 二层引用
>>> 三层引用
>> 另一个二层引用(会跟在三层引用后面)
效果:
一层引用
二层引用
三层引用
另一个二层引用(会跟在三层引用后面)
4. 分割线
用三个或者三个以上的*或者_都可以。
示例:
---
----
***
****
5. 图片
图片的行内式语法
![图片名称](图片地址 "图片提示")
图片名称就是对图片内容的解释,如果图片因为某些原因不能显示,就用定义的图片名称文字来代替图片。图片提示是当鼠标悬停在图片上时显示的提示内容。图片提示可加可不加。
示例:
![blockchain](https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=702257389,1274025419&fm=27&gp=0.jpg "区块链")
效果:
图片的参考式语法[3]
在文档要插入图片的地方写![图片名称][标记]。在文档的任意位置写上[标记]:图片地址 "图片提示"。
示例:
![blockchainjpg][]
[blockchainjpg](https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=702257389,1274025419&fm=27&gp=0.jpg "区块链")
效果:
6. 超链接
超链接的行内式语法
[超链接名称](超链接地址 "超链接提示")
超链接名称就是对超链接的解释。超链接提示是当鼠标悬停在超链接上时显示的提示内容。超链接提示可加可不加。
其实和图片的格式差不多,就是显示图片前面多一个感叹号!。
示例:
[简书](//www.greatytc.com "简书")
[百度](http://baidu.com)
效果:
超链接的参考式语法[3]
如果某一个链接在文章中多处使用,那么使用引用的方式创建链接将非常好,它可以让你对链接进行统一的管理。
语法说明:
参考式链接分为两部分。一种写法是,在文中写[超链接文字][超链接标记],在文本的任意位置添加[超链接标记]:超链接地址 "超链接提示"。链接地址与链接标题中间有一个空格。超链接提示是当鼠标悬停在超链接上时显示的提示内容。
另一种写法是,如果超链接文字本身可以做为超链接标记,你也可以在文中写[超链接文字][],然后在文本的任意位置添加[超链接文字]:超链接地址 "超链接提示"。
示例:
我经常去的几个网站[Google][1]、[Leanote][2]以及[自己的博客][3]
[Leanote 笔记][2]是一个不错的[网站][]。
[1]:http://www.google.com "Google"
[2]:http://www.leanote.com "Leanote"
[3]:http://http://blog.leanote.com/freewalk "梵居闹市"
[网站]:http://http://blog.leanote.com/freewalk
自动链接[3]
只要是用<>包起来,Markdown就会自动把它转成链接。
示例:
<http://www.baidu.com>
效果:
7. 列表
无序列表
无序列表用- + *任何一种开头都可以。注意- + *跟内容之间要有一个空格。
示例:
- 列表内容1
+ 列表内容2
* 列表内容3
有序列表
有序列表用数字加点为开头。注意序号跟内容之间要有一个空格。
示例:
1. 列表内容1
2. 列表内容2
3. 列表内容3
列表嵌套
在VS Code里用Tab键就能使用列表嵌套的功能,上一级与下一级的序号之间相差2个空格(也有配置成3个空格的)。
示例:
* 列表1
* 二级列表1
* 三级列表1
* 列表2
* 二级列表2
* 三级列表2
* 列表3
1. 列表1
1. 二级列表1
1. 三级列表1
2. 列表2
8. 表格
每一行用|分割列。第二行分割表头和内容,可以在这里控制该列的对齐方式。左边有:表示左对齐,右边有:表示右对齐,两边都有:表示居中对齐,中间的-是为了占满空间。
VS Code有自动对齐表格功能,自动填充表格第二行的填充符-。可以Ctrl+Shift+P后输入format进行格式化,或者使用快捷键Alt+Shift+F。因此在手动输入表格时,可以只输入一个填充符-,以及为了对齐使用的:,写完后用格式化功能自动填充-对齐。
示例:
| 左对齐123456789 | 居中对齐123456789 | 右对齐123456789 |
| :-------------- | :---------------: | --------------: |
| 内容 | 内容 | 内容 |
| 内容 | 内容 | 内容 |
效果:
左对齐123456789 | 居中对齐123456789 | 右对齐123456789 |
---|---|---|
内容 | 内容 | 内容 |
内容 | 内容 | 内容 |
9. 代码
单行代码,代码之间分别用一个反引号包起来。
示例:
`单行代码内容`
代码块,代码前后各一行用三个反引号包起来。下面的示例中,以>开头是为了防止转义,实际上是没有的。
示例:
> ```
> 代码块
> ```
10. 锚点[3]
锚点其实就是页内超链接,也就是链接本文档内部的某些元素,实现当前页面中的跳转。
在准备跳转到的指定标题后插入锚点{#标记},然后在文档的其它地方写上连接到锚点的链接。
示例:
## 0. 目录{#index}
跳转到[目录](#index)
11. 任务列表[4]
用[]表示未完成任务项,用[x]表示已完成任务项。快捷键Alt+C是对任务列表是否选中进行切换。
示例:
* [x] 选项一
* [ ] 选项二
* [ ] 选项三
效果:
- 选项一
- 选项二
- 选项三
二、需要转义的字符[5]
有一些字符在Markdown里有特殊含义的,在一般的文段里如果不需要有特殊含义,就要加上反斜杠\防止转义。这些需要转义的字符包括:
\\ 反斜杠
\` 反引号
\* 星号
\_ 下划线
\{\} 大括号
\[\] 中括号
\(\) 小括号
\# 井号
\+ 加号
\- 减号
\. 英文句号
\! 感叹号
- \ 反斜杠
- ` 反引号
- * 星号
- _ 下划线
- {} 大括号
- [] 中括号
- () 小括号
- # 井号
- + 加号
- - 减号
- . 英文句号
- ! 感叹号
三、markdownlint规范[6]
markdownlint是VS Code里推荐安装的Markdown语法规范插件,在看了给插件github上的文档后把常用的规范记录在此。有一些规范我感觉,有点强迫症的意思,一没遵守就会在VS Code里报警告,真令人头疼。。
- 以#开头的标题层级,一次只能增加一级,不能从#直接到下一个是###。
- 全文开始得由一个一级标题#开始。
- 全文使用的无序列表的序号必须使用一致,也就是说* - +全文必须统一使用一个。
- 同一级别的列表项缩进必须一致,可以左对齐也可以右对齐。
- 不缩进顶层列表项。
- 无序列表缩进默认是2个空格。
- 每一行不能有尾随空格。
- 链接语法不能用错了,是[]()而不是()[]。
- 每个部分之间不能有多个连续的空白行。也就是强迫你每一段之间以一行空白行分割。
- 标题与#符号之间有一个空格。
- #开头的标题必须在行首。
- 不能有具有相同内容的多个标题。
- 同一个文档内不能出现多个一级标题。
- 标题中最后不能出现标点符号。
- 引用中>后面必须有一个空格。
- 每个使用``````的代码块前后均要具有空白行。
- 列表项前后应由空行包围。
- 直接使用的链接需要由<>符号包围。
- 在一个文档中水平线必须使用同一种格式,包括---、- - -、***或者****。
- 使用强调代替标题,就是说一行只有粗体或者斜体的字体的话,不是用字体强调而是用标题。
- 使用字体格式的加粗、斜体等,在*和_符号旁边不能出现空格。
- 在单行代码``符号旁边的内容不能出现空格。
- 链接的[和]符号旁边不能出现空格。
- 代码块```后面要声明使用的语言。
- 不能使用空链接。[一个空链接](),这样是不允许的。
- 图片应该具有替代文字,也就是图片提示语。
- 文档应该以一个空白行结尾。