轻松学透Markdown的终极教程 #3: Markdown标准标记语法(全)

掌握并熟记一些常用的Markdown的标记语法,简单、有趣、实用

其实如果大家选择了一款Markdown编辑器上手的话,这些Mardown编辑器里都会带有Markdown的标记语法的说明和提示。

图1 Markdown编辑器自带的标记语法说明和提示

【▲ 部分图片截自Ulysses软件和MacDown软件】

通过这些软件里的简要语法说明,大家也能够很快的学会Markdown的标记语法并应用到实际的文字工作中去。

同时网络上也有很多的标记语法语法讲解,有Markdown官方的语法介绍网站(文末附录有链接),也有很多其他人分享的Markdown标记语法教程。

这里我给大家做了一张「简单明了」的标准的Markdown标记语法速查图,一图即可看懂Markdown语法标记:

图2 标准的Markdown标记语法速查图

可能图片上传后压缩失真模糊了,可以关注我们的公众号「远怀学堂」,回复209即可下载到此图的高清1080P大图,方便快速查询学习标准的Markdown标记语法

如果你看上面这张图就已经完全懂了,那你可以不需要继续阅读下去了,下文是对这些语法做更加详细的解读,内容较细,建议看下去,你也可以只看你关心的那部分「标记语法」。

我会结合实际的应用场景给大家细讲这些标记语法,本系列教程中会给大家讲到应用非常广泛的两种Markdown标记语法:「标准的Markdown标记语法」和「GFM(GitHub Flavored Markdown)语法」,同时会对实际应用中的重难点标记语法「图片、链接」给大家做更加详细、明了、深入的讲解,让大家完全学透Markdown。

3.1 不同的语法之分

Markdown语言是John Gruber 在 2004 年创造的,由他一开始提出来的Markdown标记语言规则可以看做是「标准的Markdown标记语法」。

标准的Markdown中提供的标记语法相对简单且较少,后来随着时间的推移,使用Markdown的人越来越多,不同的人有不同的使用需求,最初提出来的Markdown标记语法已经满足不了很多人不同的需求了,因此有很多人提出了对最初的Markdown标记语法进行扩展并进行标准化,但是Markdown的创始人Gruber认为不应完全标准化。

“不同的网站(和人们)有不同的需求。没有一种语法可以让所有人满意。” —Gruber

所以后来很多的组织自行的在「标准的Markdown」的标记语法上进行扩展,增加了些新的标记语法,其中最有名的当属GitHub发布的基于CommonMark的GitHub Flavored Markdown(GFM)标记语法。

「标准的Markdown标记语法」和「GFM标记语法」在我们这个系列教程中都会给大家讲到。

3.2 好吧,那我们开始标准的标记语法学习

首先强调一点的是:所有的标记语法都是在英文输入法状态下输入的,这点一定要注意。

Markdown格式的文档的后缀名一般为.md或者.markdown

3.2.1 最常用到的标记

标题」、「加粗」、「强调

每当我们去写一篇文章时,经常需要构思出这篇文章的目录层次结构:文章的一级大标题、二级标题、三级标题、四级标题等。

图3 本篇教程的大纲目录层次结构

【▲ 由本Markdown文档导出成Word后截的大纲图示】

拥有良好的目录层次结构的文章编写和阅读起来都很清晰,在Markdown中可以使用「标题」标语语法来实现这种文章的目录层次结构。

「标题」

【标记语法】

# 文章大标题(一级标题)## 第1章节 章节名(二级标题)### 1.1 小节名(三级标题)## 第2章节 章节名(二级标题)### 2.1 小节名(三级标题)#### 2.1.1 小节名(四级标题)注意标记符号 # 号后面需要有个空格

对应的最终渲染显示效果:

标记语法显示效果是在MacDown软件运行的,下同

一篇文章应该有且只有一个「一级标题」,为该文章的大标题,「一级标题」下面可以有多个「二级标题」,「二级标题」下面可以有多个「三级标题」,「三级标题」下面可以有多个「四级标题」,以此类推下去,在Markdown中最多使用6个#号代表「六级小标题」,这6个层级的目录标记语法也够我们平时做文章用了,一般也用不了那么多层级的。

当我们想要对文章中的某些文字加以强调,可以使用「加粗」和「强调」的标记语法。

「加粗」

【标记语法】

**需要加粗的文字** 或者__需要加粗的文字__

对应的最终渲染显示效果:

「强调」(「斜体」)

【标记语法】

*需要强调显示的问题* 或者 _需要强调显示的问题_

对应的最终渲染显示效果:

3.2.2 最清晰的标记

有序列表」、「无序列表」、「分隔线

当我们有一项一项的条目需要列出来表达时,可以试试Markdown中的「列表」标记语法,其中也分为「有序列表」、「无序列表」。

「有序列表」

【标记语法】

1. 有序列表项12. 有序列表项23. 有序列表项3以数字开头,后面紧跟一个.号,再加上一个空格(1. )就组成了「有序列表」的标记语法标记语法的开头的数字并非一定要1 2 3这样次序下去,只要是数字即可,也可以使用下面的表达方式1. 有序列表项11. 有序列表项26. 有序列表项3

对应的最终渲染显示效果:

「 无序列表」

【标记语法】

- 无序列表项1- 无序列表项2- 无序列表项3以-开头,加上一个空格构成了「无序列表」的标记语法,其中-也可以使用*或+代替* 无序列表项1* 无序列表项2* 无序列表项3

对应的最终渲染显示效果:

有序列表」和「无序列表」都能够通过一个一个列表项的效果很清晰、有条理的表达出意思。

这两者最大的区别就是「有序列表」标记语法最终显示时每个列表项前面有个有次序的数字,「无序列表」标记语法最终显示时是以小黑点作为列表项的开头,以表示无序的意思。

「 列表的嵌套」

有序列表」和「无序列表」也可以实现列表嵌套:

【标记语法】

1. 有序列表项1- 无序列表1- 无序列表2- 无序列表32. 有序列表项23. 有序列表项3- 无序列表11. 吃饭2. 睡觉3. 打豆豆- 无序列表2> 我是一个引用- 无序列表3我是一个段落

对应的最终渲染显示效果:

使用一个TAB(制表符)或者4个空格来实现在某个列表项下面嵌套其他内容,同时需要在该列表项下加上一个空行(有些软件可能不需要这么做)。

要实现更多层次的嵌套效果可以使用更多TAB去控制嵌套的层次关系,但是我也不推荐大家嵌套的层次过多(最多也就一层嵌套关系),嵌套层次过多反而将内容的显示变得显得复杂难懂,同时在写标记语法时也容易出错。

「分隔线」

分隔线」标记语法,可以在两段内容之间增加一条水平的分隔线,分隔内容,清晰表达。

【标记语法】

***或者---或者___或者* * *或者*********使用3个或3个以上的*号或者-号或者_号,可以建立一条水平的分隔线,这一行内不能有其他内容,但是在多个*(或-、_)之间插入空格。

对应的最终渲染显示效果:

3.2.3 最网络的标记

链接」、「自动链接」、「引用

「链接」

我们平时浏览网页时,网页上的各种超链接将各种关联的信息链接在了一起,我们点击一个页面上的一个链接可以将我们导航到另一个页面上去,这些链接构成了内容丰富的互联网世界,链接可以说是互联网的基石了。

在文档中插入链接,让更多的信息关联在一起,比如我们想去做一个旅游攻略时,可以将一些有用的网络上有价值的链接记录在攻略中。

在Markdown中可以轻松实现网页上的超链接的效果,因为Markdown就是在网络环境中被创造出来的。

链接」标记语法有两种形式: 「行内式的链接」和「参考式的链接」。

【行内式的链接标记语法】

我们的官方网站是:[远怀学堂](https://www.yuanhuaixuetang.com)我们的官方网站是:[远怀学堂](https://www.yuanhuaixuetang.com "远怀学堂官方网站")

对应的最终渲染显示效果:

行内式的链接语法是[](),方括号里是链接的文字,圆括号里是链接的URL地址,URL地址后面还可以加一个空格再使用一对双引号包裹一个链接显示的title,也就是鼠标悬停在该链接上时显示的title文字,这个title是可选的。

圆括号里的URL地址可以使形如http/https开头的主机绝对 URL地址,也是是形如/index.html,../about.html,../a/download.html,/a/b/c.png的路径地址,这种路径地址是基于当前的Web主机或者当前markdown文档所在目录的地址。

【标记语法】

[图片1][./1.png][图片1][1.png][关于我们][/about.html][联系我们][../contact.html]

使用这种路径地址,情况就有点点复杂:

1.如果Markdown文档是在本地电脑上编辑的话:

[图片1][./1.png]    1.png需要存放在当前Markdown文档在同一个目录下[图片1][1.png]    与上相同,./开头可以省略[关于我们][/about.html]  about.html需要存放在当前电脑的根目录下(/代表的是MacOS或者Linux系统的根目录)[联系我们][../contact.html]  contact.html需要存放在当前Markdown文档所在目录的上一层目录中

2.如果Markdown文档渲染之后的html页面存放在Web主机上的话,那么这些路径地址指的是:

[图片1][./1.png]    1.png需要存放在当前html页面同一个目录下[图片1][1.png]    与上相同,./开头可以省略[关于我们][/about.html]  about.html需要存放在Web主机的根目录下[联系我们][../contact.html]  contact.html需要存放在当前html页面所在目录的上一层目录中

./(可省略)开头的地址指当前文件所在的目录,一般也是可以省略掉的,../开头的地址指当前文件的上一层目录。它们是以某个点(一般是以当前Markdown文档所在的目录或者当前主机)作为参考,一步一步索引到目标文件的路径。

/开头的地址指的是文件所在环境(本地电脑或Web主机)的根目录,如果是本地电脑的话,/指的是本地电脑文件系统的根目录,如果是Web主机的话,/指的是Web主机环境中Web应用程序(Apache、nginx等)配置的Web根目录。

【参考式的链接标记语法】

我们的官方网站是:[远怀学堂][a]我们的官方网站是:[远怀学堂][1][a]: https://www.yuanhuaixuetang.com[1]: https://www.yuanhuaixuetang.com "远怀学堂官方网站"

对应的最终渲染显示效果:

参考式的链接标记语法是2部分组成的:

第一个部分是由[][]构成的,第一个方括号里是链接的文字,第二个方括号里填写的一个id标识符,该id标识符可以是数字或者字母,同时该id标识符与标记语法的第二部分中的id是相同的内容

第二个部分是由[id标识符]: URL地址 "可选的title"构成的,这个部分可以放置Markdown文档的任意位置,但是我推荐将这些统一放置文档的末尾处,好统一管理。这个部分别忘了[id标识符]:冒号后面有一个空格。

我推荐大家尽量去使用「行内式的链接」标记语法,因为使用起来更加的简单明了。

「自动链接」

自动链接」可以看作是「链接」(行内式、参考式)的一种特殊的简化形式。

当我们想在文档中处理裸的网址链接或者邮箱地址时,可以使用「自动链接」这种简化的标记语法。

我们先来看下使用「行内式链接」来标记裸的网址链接或邮箱地址:

【标记语法】

[https://www.yuanhuaixuetang.com](https://www.yuanhuaixuetang.com)[support@yuanhuaixuetang.com](mailto:support@yuanhuaixuetang.com)

对应的最终渲染显示效果:

鼠标点击support@yuanhuaixuetang.com这个链接时会自动调用电脑中邮件程序,准备要向该地址发送邮件

使用「行内式链接」去标记这种裸的网址或者邮箱地址,需要在标记语法里重复写网址或者邮箱地址,通过「自动链接」的语法可以简化上述的写法:

【标记语法】

对应的最终渲染显示效果:

「引用」

引用」标记是用来对文档中引用的别人的内容的一种标记。

我们在写文章或者论文之类的经常会引用到别人的一些内容,这个时候最好将引用别人的内容标记出来,这样也可以体现出我们所写的文章或论文的权威性,同时也是对原作者的尊重和认可。

每种格式的文档对引用别人内容的标识不同,像一般专业的论文写作,需要对引用的内容在右上角用小数字标识出来,同时在论文的结尾处按一定的格式要求给出所引用内容的出处。

在Markdown中标记出文章中所引用的内容是很简单的,同时要求也没那么严格,大家可以很自由的去使用。

【标记语法】

> 我是引用的别人的一句话我不是引用内容> 我是引用的别人的一段内容1> 我是引用的别人的一段内容2> 我是引用的别人的一段内容3

引用」语法只需要在所引用的内容前面使用一个>号去标记,在>号后面还需要加上一个空格。如果引用的是一整段内容,在每一行的开头都使用一个>号加上一个空格。

对应的最终渲染显示效果:

我们也可以在引用内容的后面指出引用内容的出处,可以在引用的内容后面使用上「链接」的标记语法:

【标记语法】

> 我是引用的别人的一句话 [远怀学堂](https://www.yuanhuaixuetang.com)

对应的最终渲染显示效果:

指出引用内容的出处可以使用更加标准的「脚注」标记语法,但是在标准的Markdown语法中并不支持「脚注」标记语法,在很多的Markdown编辑器中支持「脚注」语法

引用还可以嵌套一个引用,使用如下的语法:

【标记语法】

> 我是一个引用> > 我是一个嵌套引用(两层嵌套)> > > 我也是一个嵌套引用(三层嵌套)注意每个>号后面都需要加上一个空格

对应的最终渲染显示效果:

引用的嵌套语法很简单,每多使用一个>号(后面需要加上空格),就可以实现多一层次的嵌套。

引用的嵌套可以实现一种特殊的显示效果,我觉得嵌套引用除了实现上图中的特殊的显示效果外没有啥具体的意义的。

引用标记语法还可以配合使用Markdown的其他标记语法,像标题、加粗、列表、代码等等。

【标记语法】

> # 我是一级标题> 我是个**粗体**> - 我是无序列表项1> - 我是无序列表项2> 我是个行内代码`System.out.println("Hello,World)`

对应的最终渲染显示效果:

【图 标记语法显示效果,MacDown软件运行】

引用标记语法主要是用于对文章中所引用内容的一个标记,但我们前面看到引用标记的显示效果有点特殊,大家也可以灵活的去使用「引用」标记去实现对文章中特定的内容实现引用的这种特殊显示效果,并非一定严格要求「引用」标记只能应用在引用别人内容上面。

【▲ 上图截自https://www.zybuluo.com/mdeditor】

Markdown中的「引用」的标记语法所呈现的显示效果默认是网页中的引用效果 ,一般是

标签包裹。

3.2.4 最难用的标记

图片

Markdown是一种纯文本格式的文档,要在纯文本格式的文档中直接插入图片、音频、视频这等多媒体文件是一件非常困难的事情,纯文本的编辑器中只能存放像汉字、字母、标点符号等键盘上可以直接打出来的内容。

像Word一类的应用并非是纯文本的编辑器,这些软件中是很容易插入图片、音频、视频等多媒体文件的。

但是图文并茂的文章总是有更多的人喜爱看,而且图片等多媒体文件的表达意思的能力更强,在Markdown中也是可以「插入」图片的,只不过使用起来有点点「难」。

「插入」图片,其实并非字面上的意思将图片插入到Markdown文档中去的,其实是一种「引用」的关系,关于这点我将在会后面给大家做更加详细的讲解

这里说的「难」不是指Markdown中使用图片的标记方法难,图片的标记语法也非常的简单,「难」的是对Markdown中「插入」图片的理解和将图片放置在哪里。

这里我们先给出在Markdown中「插入」图片的语法:

「 图片」

图片的标记语法和链接的标记方法相似,也分为:「行内式」和「参考式」。

【图片的行内式标记语法】

「插入」本地图片![](1.png)1.png需要与当前编辑的Markdown文件在同一目录下「插入」网络图片 -- 头条的LOGO图片![头条LOGO](https://s3.pstatp.com/toutiao/static/img/logo.271e845.png)

对应的最终渲染显示效果:

图片的行内式标记语法在「行内式链接」标记语法([]())前面加上一个!,形如![图片的描述文字](图片的链接地址),其中图片的描述文字可以省略不填,图片的链接地址可以是图片的本地地址,也可以是图片的网络地址。

【图片的参考式标记语法】

//图片的参考式标记语法![][img1]![][img2][img1]: 1.png[img2]: https://s3.pstatp.com/toutiao/static/img/logo.271e845.png

对应的最终渲染显示效果与上演示类似。

图片的参考式标记语法是在「参考式链接」标记语法由2个部分组成的:

第一个部分是由![图片的描述文字][id标识符]构成的,第一个方括号里是,第二个方括号里填写的一个id标识符,该id标识符可以是数字或者字母,同时该id标识符与该标记语法的第二部分中的id是相同的内容

第二个部分是由[id标识符]: 图片的链接地址构成的,这个部分可以放置Markdown文档的任意位置,但是我推荐将这些统一放置文档的末尾处,好统一管理。这个部分别忘了[id标识符]:冒号后面有一个空格。

我推荐大家尽量去使用「行内式图片」的标记语法,因为使用起来更加的顺手、自然。

我这里不对「 图片」标记语法做更多的讲解,「图片」是Markdown中的一个难点,也是它的一个痛点,我将在下一节教程中对Markdown的痛点「图片」做一个专题讲解,通过专题带大家更加深入有效的去理解在Markdown中使用「图片」这个问题。

3.2.5 最程序员的标记

行内代码」、「代码块」、「兼容HTML语法

行内代码」、「代码块」标记语法都是用来在文档中正确的标记显示出某种程序语言的代码,比如Java源代码、PHP代码片段、函数名称等等,这两个标记语法主是要来写和程序语言相关的文档时用得比较多,程序员朋友们写技术博客时会经常需要用到,其他的情形一般用得很少。

兼容HTML语法」是指可以直接在Markdown中使用原生的HTML代码去实现不同标记效果,一般用于补充Markdown中没有实现的标记效果,需要一定的前端HTML代码的编写能力。

「行内代码」

行内代码」标记语法是用来标记一行内的一小段代码

行内代码」标记语法:

【标记语法】

在Java中可以使用代码`System.out.println("欢迎来到远怀学堂")`去输出一句简单的话

行内代码的标记语法是使用反引号(`)将那一小段代码包裹起来。

反引号(`)通常是在字母键上方的数字键1的左侧,Esc键的下方,英文输入法下输入

对应的最终渲染显示效果:

如果想在「行内代码」中输出反引号(`)的话,可以使用多个反引号(`)开启和结束代码段 :

【标记语法】

在行内代码里输出一个反引号,``我是一个反引号(`),通过这种方式可以输出我``

对应的最终渲染显示效果:

Markdown中使用「行内代码」的标记语法,在进行最终渲染显示的时候,Markdown解析器会将「行内代码」的标记语法解析成行内代码内容的HTML代码形式,从而可以对行内代码加上特定的显示样式效果。

「代码块」

代码块」的标记语法是用来标记一整块的代码段的,而不是在一行内标记一小段的代码。

【标记语法】

下面是在Java中简单的输出Hello,World的代码实现public class HelloWorld {public static void main(String[] args){System.out.println("Hello,World");}}通过上面的代码,我们可以利用Java语言去输出经典的"Hello,World"

对应的最终渲染显示效果:

在Markdown中实现代码块效果的标记语法很简单,只需要对代码段「缩进1个TAB制表符或者4个空格」。

但是我个人觉得Markdown标准语法里的这种通用缩进1个TAB制表符或者4个空格的方式去标记一段代码块并不好用,GFM语法中,包括很多Markdown编辑器也支持使用3个反引号(```)的语法去标记一段代码,这个我将在后面的GFM语法中给大家讲到。

Markdown中使用「 代码块」的标记语法,在进行最终渲染显示的时候,Markdown解析器会将「 代码块」的标记语法解析成

代码块

的HTML代码形式,使用了

可以保证代码块保持原有的排版格式,显示出代码块原有的样子。

很多Markdown编辑器直接支持对代码块的语法高亮显示效果:

「兼容HTML语法」

HTML(Hypertext Marked Language)称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。 -- HTML - 百科

兼容HTML语法简单来说是可以直接在Markdown文档中使用HTML的语法,这就很程序员了,如果你懂前端的HTML语法的话,你就可以在Markdown中实现任何可以在HTML页面中实现的效果,比如我们可以通过下面的HTML代码在Markdown文档中插入一个表格:

注意标准的Markdown标记语法是没有直接的表格的标记语法,在GFM中是有标记语法直接支持表格的

【标记语法】

在Markdown中使用HTML语言实现表格效果下面在Markdown中插入一个表格

姓名年龄性别小明18男张三30女我是表格下面的内容

对应的最终渲染显示效果:

这里需要注意的是,在Markdown文档中使用原生的HTML代码,需要在HTML代码的开头和结尾处各保留一空行,通过HTML代码前后的空行与其他的Markdown内容分隔开来。这样既利于文档中的HTML代码的正确解析,也利于整个文档的内容清晰分隔开(Markdown内容归Markdown内容,HTML代码归HTML代码)。

我对在Markdown文档中使用原生的HTML代码的几点看法:

  1. 原生的HTML代码功能很强大,可以实现很多Markdown中已有的或者没有实现的标记效果。
  2. 虽然现有的Markdown语法中的标记语法都可以直接使用HTML代码去实现,但是这样做一点意义都没有,因为本来使用Markdown的目的就是使用这个简化的HTML标记语法(Markdown标记语法)来实现原先只有HTML代码才能实现标记效果。
  3. 尽量不要用或者少用原生的HTML代码,如果实在想去实现一些效果,但Markdown语法中没有支持,可以考虑去使用一点点,但是也不要用多,因为原生的HTML代码写在Markdown的文档中实在是有点突兀、难看而且难写。

3.2.6 最迷惑人的标记

段落」、「换行

「段落」和「换行」按理来说是非常容易理解和实现的,我们在一般的文字处理软件当中使用一个回车键就可以实现换行的效果,同时也是新起了一个段落。

Word中通过一个回车键实现换行和新起一个段落

很多人会认为「段落」和「换行」是同一个效果,是同一种效果,但是在Markdown中「段落」和「换行」却不太一样,有点迷惑人,我们给大家剖析一下。

「段落」

在标准的Markdown语法中一行或者多行的文本组成了一个段落,同时必须在这个段落的前面要有一个或一个以上的空行,这个空行只要看上去像一个空行即可,比如由单独的一个回车符构成的空行,也可以是由空格或者制表符构成的空行。

段落」标记语法:

【标记语法】

我是段落1,我只有一句话我是段落2,我有很多话,我是个话痨,看在我的前面有一个空行吧,这个空行就是用来分隔或定义这个段落的,我是个话痨,哈哈哈。我是段落3,我也有很多话,我也是个话痨,看在我的前面有两个空行吧,这个空行就是用来分隔或定义这个段落的,我也是个话痨,哈哈哈。

对应的最终渲染显示效果:

段落如果是从第一行开始或者是跟在「标题」标记(#、##、###等)语法之后,可以不用在这个段落的前面加上空行

在Markdown中要实现新起一个段落,只需要多按几次回车键,形成一个或者多个空行后再输入的内容就可以形成了一个新的段落了。这点跟我们平时在一般的文字处理软件中使用一个回车键(并不需要形成空行)就可以实现新起一个段落是不一样的,大家要能够区分开来。

段落」标记实际上由Markdown解析器解析时,会将它解析成

【「段落」标记解析后的HTML代码】

我是段落1,我只有一句话

我是段落2,我有很多话,我是个话痨,看在我的前面有一个空行吧,这个空行就是用来分隔或定义这个段落的,我是个话痨,哈哈哈。

我是段落3,我也有很多话,我也是个话痨,看在我的前面有两个空行吧,这个空行就是用来分隔或定义这个段落的,我也是个话痨,哈哈哈。

如果不在新起的段落前面加上空行的话,那么经过Markdown解析器解析的时候会将未加空行的内容和它上面的内容视作在同一个段落里的,也就是由同一个

也有很多的Markdown编辑器可以直接一个回车(不需要实现空行)就可以实现一个段落的最终显示效果,是这些软件自带的特性而已,标准的Markdown语法并不支持这样做

「换行」

换行,准确的说应该是段落内的硬换行,是指在一个段落里面实现换行的一个效果,并非是新起一个段落。这里通过例子来看下:

【标记语法】

我是一个段落4,我有很多话,我是个话痨,我想在这个段落里实现换行的效果,可以使用两个或两个以上的空格再加上一个回车就可以实现一个段落内的换行效果了,下面的内容就是这个段落内换行后的效果。  我还是段落4,只不过有了一个段落内的换行将我跟上面的内容分隔开了。

对应的最终渲染显示效果:

段落内的「换行」标记语法是通过两个或者两个以上的空格再加上一个回车就可以实现一个段落内的换行效果。

换行」标记语法经由Markdown解析器解析的时候,会将它解析成
的HTML标签,
标签在HTML中代表一个换行符。

通过「换行」标记形成的段落内的换行效果有点像新起了个段落,但实际并非是新起了一个段落,分行后的内容和分行前的内容还是同属于同一个段落,只不过多了一个
,形如下面:

【「换行」标记解析后的HTML代码】

我是一个段落4,我有很多话,我是个话痨,我想在这个段落里实现换行的效果,可以使用两个或两个以上的空格再加上一个回车就可以实现一个段落内的换行效果了,下面的内容就是这个段落内换行后的效果。
我还是段落4,只不过有了一个段落内的换行将我跟上面的内容分隔开了。

「段落」和「换行」深入剖析

Markdown中的「段落」和「换行」是站在最终显示的效果的角度上去看的,而不是站在编辑状态的角度去看的,也就是说使用「段落」或「换行」标记语法是为了文档最终渲染显示效果看上去是一个「段落效果」或者「换行效果」。

如果是站在编辑状态的角度去看的话,在Markdown编辑器里编辑的时候,我们按一个回车就可以形成一个新的段落和换行的效果,但是经由Markdown解析器解析之后的文档最终渲染显示效果并不是新的段落的换行的效果。

我们再通过图示来看下Markdown中「段落」和「换行」的解析细节:

「段落」的解析细节

「段落」的解析细节

「换行」的解析细节

「换行」的解析细节

建议大家多使用「段落」标记,少用或者不用「换行」标记。

关于段落和换行记住一点就够了:在Markdown中多使用空行(多按回车)

段落和换行这么「简单」的内容,却需要写这么多,是不是有点迷惑人啊。。。

3.2.7 最其他的标记

还有一些语法不知道怎么分类,就给他分类到这个类别下吧。

前面讲解了绝大部分的Markdown的标记语法,我们也看得出来,Markdown标记语法就是使用一些简单的标识符号(#、*、-、[ 等)去代表一些排版格式、样式效果。

这些简单的标识符号(#、*、-、[ 等)在Markdown文档中具有特殊的含义,我们键入这样的字符也是代表特定的含义,并不能将这些字符本身直接最终渲染显示出来,如果我们想要在最终的渲染显示中直接显示出这些标识符号本身的话,可以通过两种方法:

  1. 特殊字符转义
  2. 通过「代码」标记语法

特殊字符转义

可以在这些具有特殊含义的标识符(#、*、-、[ 等)的前面加上一个反斜杠(),就可以实现对这些特殊的标识符实现字符的转义,就可以在最终的显示中显示出这些特殊字符的本身了:

【标记语法】

显示出#号显示出*号显示出-号显示出[号

对应的最终渲染显示效果:

可以使用字符转义显示的特殊字符有:

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

通过「代码」标记语法

代码」标记语法(包括行内代码和代码块)里的内容最终渲染显示时都是原样直接显示的,这种特性可以用来直接显示所有的具有特殊含义的字符:

【标记语法】

显示出`#`号显示出`*`号显示出`-`号显示出`[`号

对应的最终渲染显示效果:

3.3 Markdown标准语法结束语

标准的Markdown标记语法就这么些个标记语法,简单吧,动手试试吧!

Just Try It!

3.4 附录

标准Markdown语法官方网站:

英文原版:https://daringfireball.net/projects/markdown/syntax

中文翻译版:http://www.markdown.cn/

下一篇教程中会给大家专题讲解Markdown中的痛点「图片」

a pycharm 标记多个_轻松学透Markdown的终极教程 #3:Markdown标准标记语法(全)相关推荐

  1. c++图书管理系统_轻松学做C语言课程设计:图书管理系统-数组实现

    C语言课程设计,对于初学者来说,主要是综合运用C语言基础知识,以实际项目的形式锻炼编程能力.从今天开始,一起轻松学做C语言课程设计常见项目,建议先运行代码,再一步步理解其实现. 题目要求 图书管理系统 ...

  2. 工具坐标6点法_轻松学机器人系列之各坐标系关系

    更多内容请点击上方安德鲁机器人关注.转载请先后台留言,请支持原创!谢谢 难得的机会让胖老师Johnny Pan跟大家开个车,可能速度有点快,各位系好安全带坐好.关于胖老师Johnny Pan这里就不作 ...

  3. 数据集制作_轻松学Pytorch自定义数据集制作与使用

    点击上方蓝字关注我们 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 大家好,这是轻松学Pytorch系列的第六篇分享,本篇你将学会如何从头开始制作自己的数据集,并通过DataLo ...

  4. rcnn代码实现_轻松学Pytorch实现自定义对象检测器

    点击上方蓝字关注我们 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 大家好,今天来继续更新轻松学Pytorch专栏,这个是系列文章我会一直坚持写下去的,希望大家转发.点赞.留言支 ...

  5. 轻松学java web_轻松学Java Web开发 pdf_IT教程网

    资源名称:轻松学Java Web开发 pdf 第1章 浏览器技术 2 1.1 HTTP协议 2 1.1.1 HTTP协议原理 2 1.1.2 HTTP请求格式 3 1.1.3 HTTP响应格式 3 1 ...

  6. 轻松学透Markdown的终极教程 #5: GFM(GitHub Flavored Markdown)语法

    目录 5.1 GFM与标准的Markdown标记语法的异同 5.2 GFM语法增加的标记 5.2.1 删除线 5.2.2 自动链接 5.2.3 任务列表 5.2.4 表格 5.2.5 代码块 5.2. ...

  7. 用pycharm做手机软件_从零开始学python:初学者用哪种工具好?南大博士选择用pycharm...

    本课程教学导师 | 张麟 西安交通大学副研究员.南京大学数学博士.CFD仿真领域专家 为什么学python? 这是一个老生常谈,但不需要有任何疑问的话题. 人工智能用的是python,图像处理用pyt ...

  8. python开发教程视频教程_金牌大神讲师Alex带你学Python 153节课带你轻松学透Python开发视频教程_IT教程网...

    (1)\第一章:目录中文件数:29个 ├─01课程介绍(一).mp4 ├─02课程介绍(二)-Python与其他语言的区别.mp4 ├─03课程介绍(三)-Python生态圈.mp4 ├─04课程介绍 ...

  9. celeba数据集_轻松学 Pytorch 使用DCGAN实现数据复制

    点击上方蓝字关注我们 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 DCGAN Ian J. Goodfellow首次提出了GAN之后,生成对抗只是神经网络还不是深度卷积神经网络 ...

最新文章

  1. 站在这山看着那山高,到了那山没柴烧.
  2. c语言 mysql_bind,C语言连接SQLSERVER数据库
  3. SQL2005数据导入错误:0xc00470fe 产品级别对于..
  4. 数据挖掘:分享两个Pandas使用小陷阱
  5. 3.26日第六次作业,第10章质量,11章人力
  6. Equipment upload - ERP ACK
  7. oracle thin和oci 区别
  8. LeetCode 263. 丑数 264. 丑数 II(DP)
  9. [译]简单得不得了的教程-一步一步用 NODE.JS, EXPRESS, JADE, MONGODB 搭建一个网站
  10. python用链接表实现栈_python 用链表实现栈(计算器1)
  11. 在 Ubuntu 中用 UFW 配置防火墙
  12. 学习 Qt 编程的好书推荐
  13. 回溯法求解n个元素的集合的幂集
  14. percentile_approx函数用法
  15. 头条视频消重软件 安卓修改视频md5
  16. 项目管理IPD产品开发
  17. 简单而直接的Python web 框架:web.py
  18. 投稿SCI 中文文献翻译后 中英文混排的解决办法
  19. 城科软件协会官网正式上线
  20. 【靶机练习】Vulnhub靶场Earth-练习记录

热门文章

  1. 分拆素数和【筛选法】
  2. ShuffleNetv2的学习笔记
  3. Apollo的学习笔记
  4. 对于electron-react-boilerplate(ERB)的学习笔记(legacy)
  5. ubuntu 18.04 conda 环境中编译 pytorch
  6. [转]小品:宋江同志在梁山泊招安动员大会上的讲话
  7. Ubuntu backlight
  8. 怎么给php下拉框默认选中
  9. Forward团队-爬虫豆瓣top250项目-设计文档
  10. html5----圆形多角