Markdown语法讲解
一小时快速上手,程序员必备的Markdown语法,轻松编写规范文档。
什么是Markdown?
Markdown 致力于使阅读和创作文档变得容易。
Markdown是一种轻量级的标记语言,设计初衷是让人们可以使用简单的文本格式来书写和编辑文档,同时具有一定的格式化效果。通过使用Markdown语法,用户可以快速地将纯文本转换为格式化的文档,例如标题、列表、链接、图片等。Markdown语法简单直观,易于学习和使用,逐渐成为了各种平台上书写文档的常用格式,甚至还可以实现Markdown文档对PDF、Word等格式的快速转换。
Markdown的文件通常以.md或.markdown为扩展名
我们可以创建一个TXT文本文档,然后将其后缀改为.md即可开始编辑此Markdown文档。
基础语法讲解
在此之前我们需要先安装一个可以编辑Markdown文档的软件,这里推荐:
- (强烈推荐) Typora: https://typoraio.cn
- Intellij IDEA: https://www.jetbrains.com.cn/idea/
准备好文档编辑器之后,我们就可以正式开始学习了。
段落和换行
Markdown文档与我们常见的Word文档或是TXT文档类似,只需要直接输入内容,就可以展示了:
当我们需要换行时,在源代码中直接换行相当于空一格,并不是真正的换行:
要实现换行有两种方式:
- 换行效果: 在上一行的末尾连续添加两个空格,然后再换行。
- 换段效果: 连续换两行。
加粗和斜体
想要使得文本加粗,我们只需要在需要加粗文本两边添加两个*星号即可:
这是一段文本,而**我是需要加粗的内容**请帮我加一下粗
或是使用两个_
下划线,效果相同:
这是一段文本,而__我是需要加粗的内容__请帮我加一下粗
注意: 这里比较推荐使用*
号,因为部分编辑器在使用_
下划线时无法实现加粗效果。
斜体与加粗类似,我们只需在需要斜体的文本两边添加一个*
星号即可:
这是一段文本,而*我是需要斜体的内容*请帮我搞一下
同样也可以使用一个_
下划线代替,效果相同:
这是一段文本,而_我是需要斜体的内容_请帮我搞一下
如果需要同时使用加粗和斜体,我们可以直接使用连续的三个*
星号或是_
下划线:
而你,我的朋友,你才是***真正的英雄***
如果我们只是单纯想在文档中使用这些特殊符号(包括后面遇到的)我们可以使用转义字符,否则某些编辑器会出现格式错乱等问题,只需在前面加上\
反斜杠即可:
我是转义的 \* 符号,可以直接展示
删除线和下划线
想要为文本添加删除线,我们只需要在需要加删除线的文本两边添加两个~波浪线即可:
这是一段普通的文本,~~而我是需要删除的内容~~
下划线在Markdown原生语法中没有提供对应的符号,我们只能借助HTML代码来实现,Markdown支持在文本中嵌入HTML标签,包括其样式,我们会在后面详细介绍:
分割线
分割线的创建非常简单,只需在单独一行使用连续三个及以上的*星号即可:
同样的,我们使用下划线也可以实现:
在连续三个字符之间也可以存在空格:
_ _ _ 连续三个带空格分隔的下划线
* * * 连续三个带空格分隔的星号
- - - 连续三个带空格分隔的减号
效果与上面一样,都可以实现分割线效果。
标题
很多情况下我们都需要一个标题来代表当前这块文本的内容核心,以便读者阅读,Markdown中也可以创建多种大小的标题,就像Word文档那样,并且非常简单,我们只需要使用#井号即可创建标题:
标题分为多种等级,不同的等级表示不同级别下的标题,我们可以通过连续添加多个#井号来表示多个不同等级的标题,但是最多只支持到六级标题:
# 我是一级标题
## 我是二级标题
### 我是三级标题
#### 我是四级标题
##### 我是五级标题
###### 我是六级标题(最多六级)
除了使用#
井号创建之外,一级标题和二级标题也可以使用其他符号快速创建,一级标题可以使用=
等号快速创建,只需要在标题文本的下方添加即可:
同样的,二级标题可以使用-
减号快速创建,也是在下方添加:
列表和勾选框
列表在我们的日常生活中起到了非常重要的作用,比如我们的日常计划、工作任务、购物清单等,都需要用到列表来展示,这样往往更加清晰直观,在Markdown中也可以很轻松地创建列表。
要创建一个无序列表,我们只需要使用*
星号作为前缀,注意需要空格:
除了星号之外,我们也可以使用加号+
或是减号-
来代替,效果完全相同。注意,这三种符号在一个列表中只能统一使用同一种,不能混用,如果出现混用的情况,会被认为是上一个列表下的一个新的列表,比如下面就被认为是三个列表了:
要创建一个带数字的有序列表,我们可以使用数字的123来表示,首先输入数字然后添加.小数点作为前缀,注意添加空格:
在列表中换行同样需要像普通文本那样,如果只是单纯换行编写,会被认为是一个空格:
如果是在末尾添加两个空格再换行,会被认为是在列表项内换行:
只有两个连续的换行才能脱离列表,作为新的段落开始编写:
列表支持多个层级嵌套,我们可以在一级列表下创建二级列表,要表示二级列表,我们可以在前面添加两个或四个空格(也可以是一个TAB缩进),表示此列表是上一个列表的子级:
我们也可以将列表变为勾选框的形式,来表示我们的任务完成情况,只需要添加一个方括号即可:
* [ ] 我是未完成的任务
* [x] 我是已完成的任务
在方括号中间填写空格表示未完成,填写大写或小写的x表示已完成。
代码块
要创建一个代码块,只需要在本行的最前面添加四个空格即可,注意代码块要与上面的其他文本隔开一行:
只不过这样非常不方便,不仅要空出四格还得专门隔一行出来,建议各位小伙伴使用下面的方式创建代码块,更加简单,我们也可以使用三个连续的 符号来添加代码块,注意前后都需要添加,囊括起来: ![](https://img-blog.csdnimg.cn/img_convert/97d86d1412971ee45d14929bb6fd1ecb.png) 在上面的三个
后可以添加语言名称,比如我们这里添加的是Java代码,那就添加java名称上去,表示这个代码块是一段Java代码,便于Markdown编辑器分辨代码并为其添加相应的高亮展示。
注意: 代码块中的所有内容都会被认为是代码,不可以嵌套其他Markdown语法。
除了编写多行代码之外,如果只是加单编写一个行内展示的代码,比如方法名称之类的,我们可以使用单个 ` 囊括行内代码块部分:
引用
当我们引用他人文章内容时,往往需要特别标注此部分,而Markdown为我们提供了更加方便的文本引用块,我们只需要在最前面添加>
大于符号即可表示后面的文本为引用文本,注意空格:
被引用的文本会被一个特殊的块包裹起来,类似于代码块,反正意思到位就行了。
在引用块内换行同样需要像普通文本那样,如果只是单纯换行编写,会被认为是一个空格:
如果是在末尾添加两个空格再换行,会被认为是在引用块内换行:
只有两个连续的换行才能脱离引用块,作为新的段落开始编写:
对于多行内容的引用,我们更推荐每一行的前面都添加>大于符号,效果与上面是完全一样的,并且看上去会更加直观:
在引用块内,我们也可以嵌套其他Markdown内容,比如列表或是代码块:
引用还能继续嵌套引用,甚至很多层,只需要连续添加<大于符号前缀即可,注意空格:
链接和图片
我们可以像Word中那样,在Markdown文档中插入超链接,只需要使用[]
和()
组合就能完成,具体语法格式为:
[链接文本](链接地址)
我们可以像下面这样编写:
这样,指定的文本会以超链接的形式存在于文档中,用户可以直接点击跳转,非常方便。
有些时候可能我们的文档中有很多链接,甚至还有重复,此时一个一个编写相当费时间,而且源代码中满屏的链接显得相当杂乱,我们可以利用变量来优化这种情况,变量可以在文章的末尾再确定值:
[链接文本][变量]
[变量]: https://www.baidu.com
等价于:
[链接文本](https://www.baidu.com)
我们接着来看如何向文章中插入图片,其实插入图片非常简单,与链接类似,语法如下:
![图片描述](图片地址 "图片名称,可选")
其实就是链接的写法前面多加了一个感叹号。由于Markdown文档是纯文本格式,无法像Word那样真的放一张图片进去,因此我们只能使用本地图片地址或是网络图片地址,比如插入一张网络图片:
这里推荐各位小伙伴使用网络图片,尤其是需要分享文档给其他小伙伴或是在不同电脑上办公的,本地图片必须一起打包带走,非常麻烦,而网络图片无论何时何地都可以访问,直接一步到位,当前,前提是选好一个合适的图床。
图片插入后,大小由编辑器决定,一般是占满宽度,我们无法主动修改图片的大小。
图片和链接一样,都可以使用变量:
脚注
在Word中我们经常会用到脚注,尤其是论文中,经常会在某个词语的右上角标上123来表示这个词语在文档的底部有注释,如果不理解可以去页脚查看注释中的内容。
在Markdown中也可以像这样编写脚注(部分编辑器不支持)
姐,遇到PHP[^1]程序员就嫁了吧。
[^1]:世界上最好的语言。
鼠标移动上去时也会展示脚注内容。
表格
在Markdown中也支持创建一个表格,使得数据的展示更加整齐有序。
不过这个语法可能稍微有一点点复杂,首先我们来看一个表格的结构,表格分为表头和表体,其中表头就是最顶上一排的,用于表示当前列的数据类型,比如年龄、性别等,而表体就是每一行数据,我们来看看如何在Markdown中编写:
| 名称 | 年龄 | 性别 |
| --- | --- | --- |
最上一排就是表头,需要在左右使用|
表示这是一个表格,同时,下方需要添加分割线,分割线使用-减号表示,写一个或多个都可以,推荐与表的宽度一致,更加美观。这样,就可以顺利展示为一个表格了:
接着我们来编写表体,格式与表头是一样的,并且可以一直往下写:
同时Markdown的表格支持内容的对齐调整,只需要使用:冒号调整分割线即可:
| 名称 | 年龄 | 性别 |
| :--- | :---: | ---: |
其中:
:---
为左对齐---:
为右对齐:---:
为居中对齐
比如我们希望内容居右对齐:
表格中也可以嵌套使用诸如加粗、斜体、行内代码块这类Markdown语法。
HTML标签
学完最基本的语法后,可能会有小伙伴觉得自定义度不够,比如无法修改字体颜色、无法自定义图片的大小等。我们也可以在Markdown文本中使用部分受支持的HTML标签,让文档内容更加个性化。
比如我们可以嵌入一个img
标签,并编写对应的css行内样式,来让图片大小可以自定义:
还有我们前面使用的换行、分割线、下划线等,都可以使用HTML提供的标签来完成:
只不过,如果Markdown语法本身就支持对应的功能,我们还是尽量使用Markdown原生的语法,以免降低可读性。
我们还可以利用css修改文本的颜色等,自定义度相当高:
各位小伙伴还可以试试看内嵌iframe
页面,实现B站视频播放哦~
其他扩展语法
除了我们上面学习的语法外,还有一些扩展语法可以使用(部分编辑器不支持,Typora需要在设置中开启才能支持)
首先是文本高亮,使用两个=
等号囊括:
==我是高亮部分==
此时文字会呈现为高亮状态,具体怎么高亮根据不同的编辑器可能效果会不一样。
文本的上标和下标分别可以使用单个^
和~
囊括来实现:
我是文本^我是上标^
我是文本~我是下标~
数学公式语法
除了基础的文档格式Markdown可以支持外,它还可以编写数学公式,更加直观和规范地展示,理科生直接爱了。
注意: 使用Typora的小伙伴需要在设置中开启内联公式支持。
公式块
需要编写数学公式,我们同样需要在特定的块中编写,公式块使用$
美元符表示。多行公式使用连续的两个美元符:
$$
我是公式
$$
如果只想在行内编写,一行内容只需要使用一个美元符囊括即可:
公式为:$ x = 17 + y $ 牛逼吧
公式块中展示的内容会自动变为标准的论文公式格式,并且字体也是非常标准的,强烈推荐各位小伙伴使用Markdown写数学公式。
特殊数学符号
在公式块中,大部分数学符号都可以通过键盘直接输入,但是还是有一些符号无法直接通过键盘输入,比如乘号、除号、根号等,我们需要借助一些特殊的代码来替代:
代码 | 符号 | 描述 |
---|---|---|
\not= | ≠\not=\= | 不等于 |
\approx | ≈\approx≈ | 约等于 |
\times | ×\times× | 乘号 |
\div | ÷\div÷ | 除号 |
\leq | ≤\leq≤ | 小于等于 |
\geq | ≥\geq≥ | 大于等于 |
\pm | ±\pm± | 正负号 |
\sum | ∑\sum∑ | 求和符号(累加) |
\prod | ∏\prod∏ | 累乘 |
\coprod | ∐\coprod∐ | 累除 |
\overline{a + b + c} | a+b+c‾\overline{a + b + c}a+b+c | 平均值 |
数学中常见特殊字符:
代码 | 符号 | 代码 | 符号 |
---|---|---|---|
\alpha | α\alphaα | \beta | β\betaβ |
\gamma | γ\gammaγ | \delta | δ\deltaδ |
\epsilon | ϵ\epsilonϵ | \eta | η\etaη |
\theta | θ\thetaθ | \pi | π\piπ |
\omega | ω\omegaω | \rho | ρ\rhoρ |
\sigma | σ\sigmaσ | \mu | μ\muμ |
还有我们数学中常见的三角函数相关:
代码 | 符号 | 描述 |
---|---|---|
\sin | sin\sinsin | 正弦 |
\cos | cos\coscos | 余弦 |
\tan | tan\tantan | 正切 |
\cot | cot\cotcot | 余切 |
\sec | sec\secsec | 正割 |
\csc | csc\csccsc | 余割 |
\circ | ∘\circ∘ | 度 |
积分和求导相关:
代码 | 符号 | 描述 |
---|---|---|
\infty | ∞\infty∞ | 无穷 |
\int | ∫\int∫ | 定积分 |
\iint | ∬\iint∬ | 双重积分 |
\iiint | ∭\iiint∭ | 三重积分 |
\oint | ∮\oint∮ | 曲线积分 |
x\prime | x′x\primex′ | 求导 |
\lim | lim\limlim | 极限 |
集合相关:
代码 | 符号 | 描述 |
---|---|---|
\emptyset | ∅\emptyset∅ | 空集 |
\in | ∈\in∈ | 属于 |
\notin | ∉\notin∈/ | 不属于 |
\supset | ⊃\supset⊃ | 真包含 |
\supseteq | ⊇\supseteq⊇ | 包含 |
\bigcap | ⋂\bigcap⋂ | 交集 |
\bigcup | ⋃\bigcup⋃ | 并集 |
对数函数相关:
代码 | 符号 | 描述 |
---|---|---|
\log | log\loglog | 对数函数 |
\ln | ln\lnln | 以e为底的对数函数 |
\lg | lg\lglg | 以10为底的对数函数 |
分数
分数使用\farc
来表示,具体格式如下:
$ \frac{分子}{分母} $
开方
开方使用\sqrt
来表示,具体格式如下:
$\sqrt{4}$
如果需要修改根号上方数值,可以添加中括号:
$\sqrt[3]{8}$
上下标
在公式块中的上下标与Markdown中的不同,语法也不一样,其中^
表示上标, _
表示下标:
$ x_下标 $
$ x^上标 $
$ x^上标_下标 $
如果上标或下标内容多于一个字符,需要使用 {} 括起来,包括后续的其他代码如果出现只有一个字符生效的情况下,考虑使用花括号囊括全部内容:
$ x_{下标} $
$ x^{上标} $
$ x^{上标}_{下标} $
积分和极限
积分非常简单,直接使用上下标即可指定范围,后续的内容可以直接向后编写,会自动居中摆放:
$ \int_1^2xdx $
极限与积分类似,同样使用下标即可:
$ \lim_{n\rightarrow+\infty}\frac{1}{n + 1} $
其他符号
向量符号:
$ \vec{a} $
省略号:
$ \cdots $ 居中省略号
$ \ldots $ 靠底部的省略号
点乘号:
$ \cdot $
累加:
$ \sum_1^n $