了解Markdown
Markdown是一种标记语言,自2004年发布以来,至今已产生了许多扩展语法,其中最流行的为GFM(Github Flavored Markdown)。
适合使用Markdown的情况
当对文章的排版没有特殊需求,且不想花太多时间在排版上时,可以使用Markdown。
不建议使用Markdown的情况
相对于适合使用Markdown的情况,在对排版如字号、段落、图片、表格等有较高要求时,建议使用专业的编辑软件如Word。
注意事项
值得注意的是,Markdown只有在对Markdown语法提高支持的平台或软件的渲染下才有效。
学习Markdown语法
学习Markdown需要明确如下路线及目标:
1) 学习基础语法
2) 学习扩展语法
3) 学习写作规范
基础语法
字体
标题
在Markdown语法中,标题指出使用两种标记:底线(-/=)和#。
-
使用底线(-/=)的语法:
- 一级标题
XXX(标题内容) ==========
- 二级标题示例
语法说明:XXX(标题内容) ------------------
1) 底线是=表示一级标题。
2) 底线是-表示二级标题。
3) 底线符号的数量至少2个。
4) 底线符号的语法只支持最多两级标题。
- 一级标题
- 使用#的语法:
语法说明:# + 空格 + 标题内容
1) 在行首插入#可标记处标题。
2)#
的个数表示了标题的等级。
3) 建议在#
后加一个空格。
4) Markdown中最多只支持前六级标题。
-
使用规范
1) 建议使用
#
标记标题,而不是底线。(底线标题最多支持两级,且不利于阅读与维护)。
2) 要保持间距,建议标题的前后各空一行(文档开头的标题除外)。
3) 标题要在行开头写,不要留有空格。
4) 建议标题的结尾不要有标点符号,如句号、逗号、冒号、分号等。
5) 建议标题要尽量简短,如果原拟的标题是一个长句,可以从长句中提取标题,而将长句作为标题下的内容。
粗体和斜体
在Markdown中,粗体由2个*
或2个_
包裹,斜体由1个*
或1个_
包裹。
- 粗体的语法格式
**加粗内容** 或 __加粗内容__
- 斜体的语法格式
*斜体内容* 或 _斜体内容_
-
使用规范
建议粗体使用2个
*
包裹,斜体使用1个*
包裹(*
比较常见,比_
可读性更强)。
段落与换行
Markdown中的段落由一行或多行文本组成,不同的段落之间用空行来标记。
-
语法说明如下。
1) 如果行与行之间没有空行,则会被视为同一段落。
2) 如果行与行之间有空行,则会被视为不同的段落。
3) 空行是指行内什么都没有,或者只有空格和制表符。
4) 如果想在段内换行,则需要在上一行的结尾插入2个以上的空格然后按回车键(在对排版要求非常低时,可以会略段内换行的影响)。
-
使用规范
为了便于阅读,应该限制每行字符的数量,通常每行不超过80个字符。关于换行的建议:
1) 当超过80个字符后进行换行。
2) 当一句话结束(。或!或?)之后进行换行。
3) 当URL较长时换行。
列表
在Markdown中支持使用有序列表和无序列表。
- 有序列表的语法
数字序号 + 英文句号 + 空格 + 列表内容
- 无序列表的语法
小提示:使用*/+/- + 空格 + 列表内容
*
/+
/-
来标记无序列表的效果是相同的。
- 嵌套列表的语法
说明:*/+/- + 第一层列表 TAB + */+/- + 第二层列表 TAB + TAB + */+/- + 第三层列表
1) 列表中可以嵌套列表。
2) 有序列表和无序列表可以互相嵌套。
- 使用规范
1) 建议使用-
来标记无序列表(*
容易跟粗体和斜体混淆,而+
不流行)。
2) 如果一个列表中的所有列表项都没有换行,建议列表标记符和列表内容间使用1个空格。
3) 如果列表项有换行,建议给无序列表的列表标记符和列表内容间使用3个空格,有序列表的列表标记符和列表内容间使用2个空格。
4) 如果一个列表中的每个列表项都只有一行,建议列表项之间不要有空行。
5) 如果列表项中有换行,建议在各个列表项之间空一行(容易区分多行列表项的开始和接受)。
6) 建议在列表前后都空1行。
分隔符
在Markdown中,分割线由3个以上的*
/-
/_
来标记。
- 使用分割线的语法
说明:*** 或 --- 或 ___
1) 分割线须使用至少3个以上的*
/-
/_
来标记。
2) 行内不能有其他字符。
3) 可以在标记符之间加上空格。
图片
- 插入图片的语法
说明:![图片替代文字](图片地址)
1) 图片替代文字在图片无法正常显示时会比较有用,正常情况下可以为空。
2) 图片地址可以是本地图片也可以是网络图片的地址。
3) 本地图片支持相对路径和绝对路径两种方式。
链接
文字链接
文字链接就是把链接地址直接写在文本中。
- 文字链接语法
[链接文字](链接地址)
引用链接
引用链接就是把链接的地址作为变量先在Markdown文件的页尾定义好,然后在正文中进行引用。
- 引用链接语法
说明:在正文中引用链接标记,可以理解为引用定义好的变量: [链接文字][链接标记] 在底部定义链接标记,可以理解为定义一个地址变量: [链接标记]:链接地址
1):链接标记可以有字母、数字、空格和标点符号。
2):链接标记不区分大小写。
3):定义的链接内容可以放在当前文件的任意位置,建议放在页尾。
4):当链接地址为网络地址时要以http/https开头,否则会被识别为本地地址。
地址链接
在Markdown中,将网络地址或邮箱地址使用<>
包裹起来会被自动转换为超链接。
- 地址链接语法
<URL或邮箱地址>
使用规范
在Markdown中,链接标题的信息应该更丰富,从标题中应该可以知道链接的内容,要使用有意义的链接标题。
行内代码与代码块
行内代码
在Markdown中,行内代码引用使用`包裹。
- 行内代码语法
`代码`
代码块
在Markdown中,代码块以Tab键或4个空格开头。
- 代码块语法
以Tab键开头: def test_print(): pass 以4个空格开头: def test_print(): pass
使用规范
除行内代码可以使用包裹外,如果想转义或强调某些字符,也可以使用
包裹。
如果代码超过了一行,应该使用扩展语法,并显式地声明语言(利于阅读)。
如果编写的代码片段足够简单,使用4个空格缩进的代码快更清晰。
在Shell命令的行尾使用1个\
(这样既可以避免命令换行,又能提高代码可读性)。
建议不要在没有输出内容的Shell命令前加$
。
引用
语法
在Markdown中,引用由>
加上引用内容来标记,如下所示。
> 引用内容
说明:
1):多行引用也可以在每一行的开头都插入>
。
2):在引用中可以嵌套引用。
3):在引用中可以使用其他的Markdown语法。
4):段落与换行的格式在引用中也是适用的。
使用规范
- 建议在引用的标记符号
>
添加1个空格。 - 建议每一行引用都使用符号
>
。 - 不用在引用中添加空行。
转义
当想在Markdown文件中插入一些标记符号,但又不想让这些符号被渲染时,可以使用\
进行转义。
-
转义语法
\特殊符号
-
可被转义的特殊符号
\ 反斜线 ` 反引号 * 星号 _ 底线 {} 花括号 [] 方括号 () 括弧 # 井字号 +加号 - 减号 . 英文句号 ! 惊叹号
扩展语法GFM
GFM提供了包括表格、任务列表、删除线、围栏代码、Emoij等在内的标记语法。
删除线
- 语法
~~被删除的文字~~
表情符号
- 语法
:表情代码:
自动链接
在标准语法中,由<>
包裹的URL地址被自动识别并解析为超链接,使用GFM扩展语法则可不使用<>
包裹。
注意:
自动链接只识别以www或http:开头的URL地址。
如果不想使用自动链接,也可以使用`包裹URL地址。
表格
-
语法
|表头1|表头2|表头3 |------|------|------| |内容1|内容2|内容3| ……
说明:
1):单元格使用|
,分隔(建议前后都使用|
)。
2):单元格和|
之间的空格会被移除。
3):表头和其它行使用----
来分隔。
4):表格对齐方式如下。
左对齐(默认): :----- 右对齐: ------: 居中对齐: :------:
5):块级元素(代码区块、引用区块)不能插入到表格中。建议:
1):在表格的前后各空一行。
2):在每一行的前后都使用|
,每一行中的|
尽量对齐。
3):不用使用太庞大复杂的表格。
任务列表
- 语法
说明:- [ ] 未勾选 - [x] 已勾选
1):任务列表以-
加上空格开头,由[
+空格/x+]
组成。
2):x可以小写,也可以大写,推荐使用小写的x(防止有些编辑器不支持大写)。
3):当方括号中的字符为空格时,复选框是未选中状态,为x时是选中状态。
围栏代码块
在基础语法中,代码块使用Tab键或4个空格开头;在扩展语法中,围栏代码块使用连续3个`或3个~包裹,还支持语法高亮,可读性和可维护性更强一些。
建议围栏代码块被空行包裹。
锚点
锚点,也称为书签,用来标记文档的特定位置,使用锚点可以跳转到当前文档或其他文档中指定的标记位置。
Markdown会被渲染成HTML页面,在HTML页面中可以通过锚点实现跳转。
- 语法
说明:[锚点描述](#锚点名)
1):锚点名建议使用字母和数字(中文可能有些网站支持不太好)。
2):锚点名区分英文大小写。
3):在锚点名中不能含有空格,也不能含有特殊字符。
排版技巧
关于空格
建议中午和英文之间加空格,中文/英文和数字之间也要加空格。
一些需要加空格的情况
- 英文标点符号与后面的字符之间需要加空格,与前面的字符之间不需要加空格。
- 当在中文、英文中使用
>
(半角)标识路径时,两边都需要加空格。
不加空格的情况
- 中文标点符号和数字、中文、英文之间不需要添加空格。
- 数字和百分号之间不需要加空格。
- 数字和单位符号之间不需要添加空格。
- 英文和数字组合成的名字之间不需要添加空格。
- 当
/
(半角)表示”或“、”路径“时,与前后的字符之间均不加空格。 - 货币符号后不加空格。
- 负号后不加空格。
全角和半角
全角:中文标点符号是全角,占2个字节。
半角:英文标点符号和数字是半角,占1个字节。
- 在中文排版中,要使用全角标点符号。
- 在英文排版中,要使用半角标点符号。
正确的英文大小写
专有名词要使用正确的大小写,需要参考它们的官方文档。
本文主要摘取自内容:《了不起的Markdown》
推荐另一篇Markdown总结比较好的文章:https://zhuanlan.zhihu.com/p/261016461