



Markdown的基础语法是遵循CommonMark规范的相对公认的标准语法,也是通用语法,被大多数编辑器支持,大部分扩展语法也基于此语法开发。基础语法实现了最常用的排版效果,包括标题、粗体、斜体、段落、换行、列表、分割线、图片、链接、行内代码、代码块、引用和转义,接下来将逐一讲解。
文章的结构由一个个标题组成,标题构成了大纲,大纲既体现了逻辑,也能用来导航。在Markdown语法中,有两种字符格式可以用于标记标题:底线(-/=)和#。
1.语法说明
使用底线标记一级标题和二级标题,底线是等号(=)时表示一级标题,底线是短横(-)时表示二级标题,底线符号的数量至少为2个,如图3-1所示。
图3-1 使用底线标记标题
语法格式如下。
在行首插入井号(#)来标记标题,#的个数不同表示不同的标题等级,一个#表示一级标题,两个#表示二级标题,依此类推,最多支持六级标题,如图3-2所示。语法格式如下。
图3-2 使用井号标记标题
2.编写规范
规范1 :为了统一性、可阅读性和可维护性,建议使用#标记标题,而不使用=或-,因为后者会难以阅读和维护,且只支持两级标题,而#可以标记6级标题,也更直观。
推荐写法:
不推荐写法:
规范2 :要保持间距,建议标题的前后都要空1行(除非标题在文档开头),#与标题文本之间也要有1个空格,否则会导致阅读困难。
推荐写法:
不推荐写法:
规范3 :不要有多余的空格。标题要写在一行的开头,结尾也不要有空格。
推荐写法:
不推荐写法:
规范4 :标题的结尾不要有标点符号,如句号、逗号、冒号和分号等。
推荐写法:
不推荐写法:
规范5 :标题要尽量简短,便于生成目录时引用。如果标题是一个长句,那么可以从长句中提取标题,将长句作为标题下的内容。
推荐写法:
不推荐写法:
粗体和斜体用来表示强调,特别是粗体,在排版中是画龙点睛之笔,应用最为广泛。在Markdown中,粗体和斜体由星号或下画线标记。
1.语法说明
Markdown中用两个星号(**)或两个下画线(__)包裹需要加粗的内容,语法格式如下。
Markdown中用1个星号(*)或1个下画线(_)包裹需要倾斜的内容,语法格式如下。
粗体和斜体语法可以混合使用,例如加粗倾斜用三个星号包裹。虽然不推荐用这种写法,但如果有需要,也可以使用,如图3-3所示。其语法格式如下。
图3-3 粗体和斜体语法
2.编写规范
规范1 :建议粗体使用2个*包裹,斜体使用1个*包裹,因为*比较常见,而且比_可读性更强。
推荐写法:
不推荐写法:
规范2 :在粗体和斜体语法标记的内部不要有空格,否则会导致一些语法严格的编辑器无法识别。
不推荐写法:
Markdown中的段落由一行或多行文本组成,不同的段落之间使用空行标记。
1.语法说明
●如果行与行之间没有空行,则会被视为同一个段落。
●如果行与行之间有空行,则会被视为不同的段落。
●如果想在段内换行,则需要在上一行的结尾插入两个以上的空格然后按“Enter”键。
空行和换行如图3-4所示。
图3-4 空行和换行
2.编写规范
规范1 :不使用两个连续的空行。连续的空行虽然不影响渲染效果,但会影响整体的统一性和可读性,如图3-5所示。
图3-5 不使用两个连续的空行
规范2 :当URL较长时换行。URL较长会导致行字符数量过多而显得混乱,可以在URL之前加一个换行符,这样既不影响渲染效果,又能提升可读性。例如:
或者通过 引用链接 进行优化,如图3-6所示。
图3-6 当URL较长时换行
有序列表和无序列表用来将信息再分组,提高文章的可读性。Markdown中的有序列表用有序的数字或无序的数字标记,无序列表可用星号、加号、短横等标记。
1.语法说明
Markdown中有序列表的语法格式如下。
有序列表中的数字序号既可以是有序的,也可以是相同的或无序的,最终渲染的效果都一样。但为了可读性,建议用有序的数字序号标记有序列表,这与最终的渲染效果一致。实例演示如图3-7所示。
图3-7 有序列表实例演示
无序列表由“短横(-)、星号(*)、加号(+)+空格+列表内容”标记,语法格式如下。
使用-、*、+标记无序列表的效果是相同的,如图3-8所示。
图3-8 使用短横、星号和加号标记无序列表
列表中可以嵌套列表,有序列表和无序列表也可以互相嵌套。嵌套列表示例如图3-9所示,嵌套列表的语法如下。
图3-9 嵌套列表示例
2.编写规范
规范1 :建议使用-标记无序列表,因为*容易与粗体和斜体混淆,而+不常用。
推荐写法如下。
不推荐写法如下。
规范2 :如果一个列表中所有的列表项都没有换行,则建议在列表的开头使用-加1个空格。
推荐写法如下。
不推荐写法如下。
规范3 :如果一个列表中的每个列表项都只有1行,则建议列表项之间不要有空行。
推荐写法如下。
不推荐写法如下。
规范4 :建议在列表的前后都空1行,不但格式整齐,而且可读性更强。
推荐写法如下。
不推荐写法如下。
分割线用来分割文章内容。如果文章的前后语义差别比较大,则可以用分割线来区分。在Markdown中,分割线由3个以上的星号(*)、短横(-)、下画线(_)标记,如图3-10所示,行内不能有其他的字符,可以在标记符中间加上空格。使用分割线的语法格式如下。
图3-10 分割线
一图胜千言,文章中的插图必不可少。Markdown插入图片的语法是叹号+中括号包裹图片替代文字+圆括号包裹图片地址,符号之间没有空格。基本格式如下。
说明如下,如图3-11所示。
图3-11 图片
●图片替代文字在图片无法正常显示时会比较有用。
●图片地址既可以是本地图片的路径,也可以是网络图片的地址。
●本地图片支持相对路径和绝对路径两种方式。
当图片无法正常显示时,会显示替代文字,如图3-12所示。
图3-12 显示替代文字
在一些Web编辑器中,替代文字会显示为图片说明,如图3-13所示。
图3-13 替代文字会显示为图片说明
如果要给图片加上鼠标悬停提示文字,如图3-14所示,那么语法格式如下。
图3-14 鼠标悬停提示
如果要给图片加上链接,如图3-15所示,那么语法格式如下。
图3-15 带链接的图片
带链接的图片,把光标放上去会显示一个小手,点击图片,即可跳转到链接地址。
1.文字链接
文字链接即把链接地址直接写在文本中。文字链接的语法比图片链接少了一个叹号(!), 用中括号包裹链接文字 ,后面紧接着圆括号包裹的链接地址,如图3-16所示,语法格式如下。
图3-16 文字链接
如果要给链接加上鼠标悬停提示文字,如图3-17所示,那么语法格式如下。
图3-17 文字链接增加鼠标悬停提示文字
2.引用链接
如果文本中的链接比较多,那么源码看起来会很乱。
如果换一种写法,那么其条理性和可读性会好很多。
对于这种情况,先把链接地址在某个地方统一定义好,然后在正文中通过“变量”来引用的方法叫 引用链接 。 引用链接 主要分为两步。
第一步,在文档底部定义链接标记,可以理解为定义一个地址变量,注意冒号后要加一个空格。语法格式如下。
第二步,在正文中引用链接标记,可以理解为引用定义好的变量。语法格式如下。
语法说明如下,如图3-18所示。
图3-18 链接标记
●链接标记可以包括字母、数字、空格和标点符号等。
●链接标记中的字母不区分大小写。
●定义的链接内容可以放在当前文件的任意位置,建议放在页尾。
●当链接地址为网络地址时,要以http/https开头,否则会被识别为本地地址。
3.网址链接
在Markdown中,将网络地址或邮箱地址使用<>包裹起来可以将其自动转换为超链接,如图3-19所示。语法格式如下。
图3-19 网址链接
4.编写规范
链接标题的描述信息应该更丰富,从标题中可以看出链接的内容,所以要使用有意义的链接标题。推荐写法如下。
不推荐写法如下。
建议使用<>包裹自动链接,这种方式更通用。推荐写法如下。
不推荐写法如下。
自动链接要以http/https开头。推荐写法如下。
不推荐写法如下。
1.行内代码
顾名思义,行内代码就是在文字中插入代码,Markdown中使用反引号(')包裹行内代码,可使插入的代码高亮,与其他文字区分开来,如图3-20所示。语法格式如下。
图3-20 行内代码
行内代码会以编辑器设置的主题样式高亮显示,但不会有语法高亮。
2.代码块
代码块是单独的代码片段。在Markdown中,代码块以Tab键或4个空格开头,如图3-21所示,语法格式如下。
图3-21 代码块
以Tab键开头:
或者以4个空格开头:
小提示:因为代码块使用Tab键或4个空格开头的效果不够直观,很多扩展语法(如GFM)提供了围栏代码块,并且支持语法高亮。
3.编写规范
规范1 :除行内代码可以使用`包裹外,如果想转义或强调某些字符,那么也可以使用`包裹。推荐用法如图3-22所示。
图3-22 行内代码推荐用法(1)
规范2 :如果代码超过1行,则请使用围栏代码块(扩展语法),并显式地声明语言,这样做既便于阅读,也便于显示语法高亮。推荐用法如图3-23所示。
图3-23 行内代码推荐用法(2)
规范3 :如果代码片段比较简单,那么使用4个空格缩进的代码块通常更清晰。推荐用法如图3-24所示。
图3-24 行内代码推荐用法(3)
规范4 :如果要将Shell命令粘贴到终端执行,那么最好不要让命令换行,怎么做呢?命令太长时,在行尾使用一个\,既能避免命令换行,又能提高源码的可读性。推荐写法如下。
规范5 :建议不要在没有输出内容的Shell命令前加$。加$的目的是区分命令和命令的输出内容,当命令没有输出内容时,就没必要加$了,如图3-25所示。
图3-25 不在没有输出内容的Shell命令前加$
引用是比较常见的排版效果,拥有单独的分段和不同的颜色(一般是灰色)效果。在Markdown中使用大于号(>)标记引用。
1.语法说明
引用的语法是大于号(>)+引用内容,语法格式如下。
语法说明如下,如图3-26所示。
图3-26 引用
●多行引用也可以在每行的开头都插入>。
●在引用中可以嵌套引用。
●在引用中可以使用其他的Markdown语法。
●段落与换行的格式在引用中也是适用的。
2.编写规范
规范1 :为了提高可读性,建议在>之后加一个空格。
推荐写法如下。
不推荐写法如下。
规范2 :为了提高可读性和可维护性,建议在每行引用的开头都加上>。
推荐写法如下。
不推荐写法如下。
规范3 :不要在引用中添加空行。
推荐写法如下。
不推荐写法如下。
Markdown可以使用标记符号来标记内容,但如果内容本身就是标记符号怎么办呢?例如,内容为星号(*)、井号(#)、减号(-)等。如果不想让这些符号被渲染,那么除了使用反引号(`)把特殊符号当成行内代码包裹,还可以使用反斜杠(\)将这些符号转义。语法格式如下。
下面这些符号能被转义,如图3-27所示。
图3-27 转义
掌握了基础语法后,接下来进一步学习扩展语法,解锁更多排版功能,增强表达力。