Markdown语法规则
前言:本网站的所有内容都是基于markdown语法规则,使用VS Code编辑器,并加载了Markdown Preview Enhanced 0.4.1,本文将简介基础的mardown语法规则,和基于扩展包的扩展规则。
1. Markdown语法兼容HTML语法
Markdown语法兼容html语法,可以使用html标签设置字体格式,颜色等:
1 2 |
# 示例代码 <div align="center" style="color:red">使用 Markdown 编写文档</div> |
示例效果:
可以借用html语法书写上下标:
1 2 3 |
# 示例代码 H<sub>2</sub>O CO<sub>2</sub> 爆米<sup>TM</sup> |
示例效果:
H2O CO2 爆米TM
2. 标题
标题格式为若干个#
+ titile
,拥有几个#
符号表示第几级,最多支持6级子标题,注意#
与标题之间要有空格
1 2 3 4 5 6 7 8 |
#代码 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 ####### 不支持7级或更多子标题,反正字数太小也看不清 |
效果:
一级标题 {ignore=true}
二级标题 {ignore=true}
三级标题 {ignore=true}
四级标题 {ignore=true}
五级标题 {ignore=true}
六级标题 {ignore=true}
####### 不支持7级或更多子标题,反正字数太小也看不清 {ignore=true}
3. 目录
显示目录需要扩展包的支持,本文使用的是Markdown Preview Enhanced 0.4.1,其可根据标题级别生成目录,并可设置显示的级别。
1 2 3 4 |
# 示例代码:显示本文目录 [TOC] # 注意: 若某级标题不需要在目录中出现,可在该标题后面添加参数`{ignore=true}` |
示例效果:
[TOC]
4. 段落
每一个自然段前后都要空行,如果只是换行而没有多出中间的空行,编辑器将认为上下两端是同一段文字。
1 2 3 |
#示例代码 段落1 段落2* |
示例效果:
段落1 段落2*
1 2 3 4 |
#示例代码 段落1 段落2* |
示例效果:
段落1
段落2*
5. 区块引用
使用右括号>
表示区块引用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#示例代码 > 引用1 随便写点东西 >> 引用2 >> 引用2 ## 此两行将显示为同一行, >>> 引用3.1 >>> >>> 引用3.2 # 3.1和3.2之间多了一个空行 >>>> 引用4.1 >>>> \ >>>> 引用4.2 通过添加一行引用符`>`加上转义符`\`,可以达到换行且两行之间没有空行的效果。 >>>>> 引用5 可以一直嵌套引用 >>>>>> 引用6 可以一直嵌套引用 >>>>>>> 引用7 可以一直嵌套引用 >>>>>>>> 引用8 可以一直嵌套引用 |
示例效果:
引用1 随便写点东西 > 引用2.1 > 引用2.2 >> 引用3 引用可以嵌套 >>> 引用4 引用可以嵌套 >>>> 引用5 引用可以嵌套
6. 代码区块
位于文章内段落中间的小段代码,可以用一对反引号表示:code
。
对于大段的代码区块,则用成对的3个反引号括住,在其中书写代码,或者将所有代码都缩进一个制表符。
1 2 3 4 5 6 7 |
# 示例代码 # 方法1:用成对的3个反引号括住 ```python #此行可添加语言标记 print("Something") ``` # 方法2:在代码前面添加一个制表符 print("nothing") #test前面加一个相当于4个空格的制表符,或直接用四个空格 |
示例效果:
方法1:
|
|
方法2:
1
|
print("nothing") |
7. 列表
Markdown 支持无序列表(用*
, +
, -
作为一行开头)和有序列表(用数字作为行首)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# 示例代码 # 无序列表的三种表示方法,分别是用*,+,-开头并接一个空格,后面是列表内容 无序列表1 * 苹果,西瓜 * 橘子,菠萝 * 香蕉, 草莓 无序列表2: - 猴子 - 豹子 - 狗子 无序列表3: + 电脑 > 屏幕 > > 主机 + 手机 print("mobilephone") + 平板 # 有序列表用数字开始,数字后是英文字符.和一个空格,然后是列表内容。注意数字编号不一定要完全按照顺序写,但列表第一项最好还是以1开头 1. 眼睛 1. 鼻子 5. 耳朵 |
示例效果:
无序列表1 * 苹果,西瓜 * 橘子,菠萝 * 香蕉,
1
|
草莓 |
无序列表2:
- 猴子
- 豹子
- 狗子
无序列表3:
- 电脑
> 屏幕 > > 主机 手机
1
print("mobilephone")
平板
有序列表:
- 眼睛
- 鼻子
- 耳朵
注意事项:
列表内项目可以包括不止一段内容,每个段落都需要首行缩进以表示其是该列表子项目的一部分。
列表内可以包含引用和代码块。
8. 分割线
有以下几种方式都可以建立分割线:
1 2 3 4 5 6 |
# 示例代码: * * * *** ***** - - - --------------------------------------- |
示例效果:
9. 插入网页链接
有两种方式可以插入链接:行内式和参考式。当链接较多时后者更方便。
行内式格式为[example](links "titile")
。
参考式格式分两部分,第一部分是在要插入链接的位置标记好id[example][id]
, 该链接将显示成example的名字,接着在全文任意地方(一般是全文最后以注解,脚注或参考文献的方式标出)将该id代表的网址和标题按格式写在后面[id]: links "titile"
,id可以是字母、数字、空白和标点符号,但不区分大小写。 简短的网址也可以直接用方括号括起来,markdown会将该网址直接转变成一个链接
1 2 3 4 5 6 7 8 9 10 11 |
#示例代码:行内式插入链接 [Blog of WUPZ](https://knightwupz.github.io/ 'MY Blog') # 示例代码:参考式插入链接 [百度][2] # 示例代码:自动链接 <https://knightwupz.github.io> <username@126.com> |
示例效果:
https://knightwupz.github.io username@126.com
10. 插入图片
插入图片与插入链接的格式有些类似,也有两种行内式和参考式两种方式,书写格式分别是在插入链接的格式之前添加一个!
。
1 2 3 4 5 6 7 8 9 10 11 |
行内式格式: ![picture](links "titile") 参考式格式: [picture][id] # 注意: # 1. links表示图片的存放地址,可以是相对当前文档的路径,也可以是网络上公开的图片网址 # 2. markdown暂时没办法指定图片大小,如有需要可以参考html语法添加<img>标签插入图片 |
11. 字体强调
在需要强调的内容前后分别加上一个或两个*
,可以达到使该段内容变成斜体或加粗的效果。*
也可换成_
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# 示例代码 *斜体* _斜体_ **加粗** __加粗__ ***斜体+加粗*** **_斜体+加粗_** <i>斜体</i> <b>加粗</b> <em>强调</em> <u>下划线</u> <del>删除</del> Z<sup>a</sup> Z<sub>a</sub> <kbd>Ctrl</kbd> # 以下代码需要扩展包 ==背景色== ~~删除~~ |
示例效果:
斜体
斜体
加粗
_加粗
斜体加粗
斜体加粗
斜体加粗
斜体加粗
斜体
加粗
强调
下划线
删除
Za
Za
Ctrl
==背景色==
删除
12. 特殊字符
有些特殊字符需要在前面加入反斜杠来表示,这些字符包括:
1 2 3 4 5 6 7 8 9 10 11 12 |
\ 反斜线 ` 反引号 * 星号 _ 底线 {} 花括号 [] 方括号 () 括弧 # 井字号 + 加号 - 减号 . 英文句点 ! 惊叹号 |
Markdown扩展语法
本部分的语法需要加载扩展包,推荐使用Markdown Preview Enhanced最新版。
表格
markdown表格使用|
作为列与列之间的分隔符,每一行要有相同的|
个数。
1 2 3 4 5 6 7 8 9 |
# 示例代码 | 表格 | 第一列 | 第二列 | |:----|:----------------:|----------:| | 第一行| 写点什么 | 吧 | | 第二行| 还是空着 | 好了 | | 第三行 | 就这样 | 吧 | # 注意:|:----|:----------------:|----------:| 这一行只能写在第二行,:表示对其方式,写在左边表示左对齐,写在右边表示右对齐,写在两边表示居中对齐 |
表格 | 第一列 | 第二列 |
---|---|---|
第一行 | 写点什么 | 吧 |
第二行 | 还是空着 | 好了 |
第三行 | 就这样 | 吧 |
数学公式
Markdown Preview Enhanced 默认使用KaTeX渲染数学表达式,可在设置中更改为MathJax。KaTeX速度更快,但不如MathJax支持的特性多。
行内公式使用 $...$
或者 \(...\)
分隔符表示,一个大段区块的数学公式用 $$...$$
或者 \[...\]
表示。分隔符内的数学公式语法参考LaTeX语法。KaTeX所支持的符号和函数可以在KaTeX Supported Functions中找到。
1 2 3 4 5 |
# 示例代码 $$ x \href{why-equal.html}{=} y^2 + 1 $$ \( x = {-b \pm \sqrt{b^2-4ac} \over 2a} \) |
示例效果:
$$ x \href{why-equal.html}{=} y^2 + 1 $$
( x = {-b \pm \sqrt{b^2-4ac} \over 2a} )
脚注
脚注的使用方法是在插入位置插入一对中括号,其中内容以^
+脚注id
。然后在全文最后添加对该id的说明内容。
1 2 3 |
# 示例代码 Markdown[^1] |
示例效果:
Markdown1
流程图
Markdown Preview Enhanced支持flow charts, sequence diagrams, mermaid, PlantUML, WaveDrom, GraphViz,Vega & Vega-lite,Ditaa格式代码的流程图渲染,并且也可以通过运行代码框内的TikZ, Python Matplotlib, Plotly等代码来得到流程图。具体内容可参考MPE说明文档流程图部分
|
|
Sequence流程图
|
|
mermaid流程图
|
|
PlantUML
|
|
|
|
GraphViz
MPE使用 Viz.js 来渲染 dot 语言流程图。
|
|
1 2 3 4 5 6 7 8 |
gantt dateFormat YYYY-MM-DD section S1 T1: 2014-01-01, 9d section S2 T2: 2014-01-11, 9d section S3 T3: 2014-01-02, 9d |
ditaa
|
|
|
|
导入文件
支持导入的文件包括:图片(.jpeg(.jpg), .gif, .png, .apng, .svg, .bmp),表格(.csv),pdf文档,流程图代码文件(.mermaid, .plantuml(.puml) .dot),html文件,md文件,.less和.css文件,在线文件,其他文件将视为代码块。
1 2 |
# 示例代码 @import "test.csv" |
插入视频
需要借助第三方工具。