markdown语法详解(下)

本文将以最流行的GFM(GitHub Flavored Markdown)为例,介绍markdown中各种特殊段落的写法。

分隔线的写法

分隔线是网文中用得很多的一种元素,可以表达的意思有文章补充,参考来源,签名等,在word中,可以在空行输入三个-,或者三个=,或者三个~等等,再按回车插入分隔线。markdown也是一样,只要在一行内打出三个或以上的*-_就可以在文章中画一条横线:

语法 效果
***
---
___
Word中的分隔线根据不同的符号,可以是直线型,双直线型,波浪线型等等,markdown中只有一种,但是可以用css设置线型。

引用段的写法

引用名人名言,或者其他人在其它文章中的话语,一般将其放在一个引用段中。word在样式选择时可以选择引用类型,而markdown创建引用段也很方便,只要在段首以一个<+空格开头就可以了。

语法 效果

< 奥林匹克运动会发源于两千多年前的古希腊,因举办地在奥林匹亚而得名。古代奥林匹克运动会停办了1500年之后,法国人顾拜旦于19世纪末提出举办现代奥林匹克运动会的倡议。1894年成立奥委会,1896年举办了首届奥运会,1924年举办了首届冬奥会,1960年举办了首届残奥会,2010年举办了首届青奥会,2012年举办了首届青冬奥会。

奥林匹克运动会发源于两千多年前的古希腊,因举办地在奥林匹亚而得名。古代奥林匹克运动会停办了1500年之后,法国人顾拜旦于19世纪末提出举办现代奥林匹克运动会的倡议。1894年成立奥委会,1896年举办了首届奥运会,1924年举办了首届冬奥会,1960年举办了首届残奥会,2010年举办了首届青奥会,2012年举办了首届青冬奥会。
引用段也是文本段落,上一篇介绍的各种文本格式,图片,链接等等同样可以用在引用段内,而且可以用css设置不同的显示样式。

列表的写法

如果多个段落有并列关系,可以用列表的形式呈现,显得更加整洁。在markdown中,连续的每个段落在段首以一个*+空格开头就形成了一个列表。

语法 效果

* 田径:田径是体育运动中最古老的运动。
* 赛艇:运动员背向前进方向划水的一项划船运动。
* 自行车:起源于欧洲。1896年列为首届奥运会比赛。

  • 田径:田径是体育运动中最古老的运动。
  • 赛艇:运动员背向前进方向划水的一项划船运动。
  • 自行车:起源于欧洲。1896年列为首届奥运会比赛。

如果多个段落有并列关系,而且逻辑上有顺序关系,可以用有序列表的形式呈现。和word一样,连续的每个段落在在段首以数字+.+空格开头就形成了一个有序列表。

语法 效果

1. 田径:47枚金牌
2. 游泳:44枚金牌
3. 自行车:18枚金牌

  1. 田径:47枚金牌
  2. 游泳:44枚金牌
  3. 自行车:18枚金牌
和word一样,段首的数字不需要是连续的,比如三个段落分别以1. 1. 1. 开头,或者分别以1. 3. 5. 开头,最终得到的效果都是1. 2. 3. 的序号,markdown会自动计算列表序号。

如果列表中的某一项可以继续展开,还可以嵌入其它列表,也就是多级列表。在上面两种段首前加上三个空格就可以了,word很类似。

语法 效果

1. 田径:47枚金牌
2. 游泳:44枚金牌
   1. 泳道游泳:34枚金牌
   2. 跳水:8枚金牌
   3. 花样游泳:2枚金牌
3. 自行车:18枚金牌
   1. 山地:2枚金牌
   2. 公路:4枚金牌
   3. 场地:10枚金牌
   4. BMX小轮车:2枚金牌

  1. 田径:47枚金牌
  2. 游泳:44枚金牌
    1. 泳道游泳:34枚金牌
    2. 跳水:8枚金牌
    3. 花样游泳:2枚金牌
  3. 自行车:18枚金牌
    1. 山地:2枚金牌
    2. 公路:4枚金牌
    3. 场地:10枚金牌
    4. BMX小轮车:2枚金牌
列表段也是文本段落,上一篇介绍的各种文本格式,图片,链接等等同样可以用在列表段内,而且可以用css设置不同的显示样式。

表格的写法

markdown中并不直接支持很复杂的表格,通常就是m行*n列的普通表格,可以有表头,也就是(m数据行+1表头行)*n列。做法也和word中大相径庭,是通过|字符和-字符“画”表格。比如下面的字符表格:

|届数  |赛事名称       |举办国家|主办城市|举办时间              |
|------|----------------|---|---|---------------------|
|第01届|1896年雅典奥运会|希腊|雅典|1896年04月06日-1896年04月15日|
|第02届|1900年巴黎奥运会|法国|巴黎|1900年05月20日-1900年10月28日|
|第03届|1904年圣路易斯奥运会|美国|圣路易斯|1904年07月01日-1904年11月23日|
|第04届|1908年伦敦奥运会|英国|英国|1908年04月27日-1908年10月31日|
					

就会创建如下表格:

届数 赛事名称 举办国家 主办城市 举办时间
第01届 1896年雅典奥运会 希腊 雅典 1896年04月06日-1896年04月15日
第02届 1900年巴黎奥运会 法国 巴黎 1900年05月20日-1900年10月28日
第03届 1904年圣路易斯奥运会 美国 圣路易斯 1904年07月01日-1904年11月23日
第04届 1908年伦敦奥运会 英国 英国 1908年04月27日-1908年10月31日
|字符和-字符分别表示表格的竖边和横边,其中横边只要第一行以下有就可以了,第一行就是表头。而且并不需要工整地对齐,只要记得一个竖线分隔一个单元格就可以了。

表格内对齐在第二行,也就是纯|字符和-字符组成的表头/表数据分隔行内控制,如果一个单元格是以:开头并且以:结尾,那么此列是居中,仅以:开头是左对齐,仅以:结尾是右对齐,例如:

| 左对齐 | 居中  | 右对齐 |
| :------------ |:---------------:| -----:|
| col 3 is      | some wordy text | $1600 |
| col 2 is      | centered        |   $12 |
| zebra stripes | are neat        |    $1 |
					

就会创建如下表格:

左对齐 居中 右对齐
col 3 is some wordy text $1600
col 2 is centered $12
zebra stripes are neat $1
如果某个单元格没有设置对齐方式,也就是没有:字符,那么此列是默认对齐方式,由css设置,通常是左对齐。

最后说一说另一种常见的表格,没有表头,全部由数据组成,也就是无头表格。无头表格就是第一行的单元格内不能有空格以外的字符,比如上面的表格只要删掉“左对齐”,“居中”,“右对齐”:

|  |   |  |
| :------------ |:---------------:| -----:|
| col 3 is      | some wordy text | $1600 |
| col 2 is      | centered        |   $12 |
| zebra stripes | are neat        |    $1 |
					

就会创建如下表格:

col 3 is some wordy text $1600
col 2 is centered $12
zebra stripes are neat $1
表头单元和数据单元内都可以用上一篇介绍的各种文本格式,图片,链接,而且可以用css设置不同的显示样式。

代码段的写法

程序员写技术文章通常要在里面插入一段一段的代码,代码段在word内没有直接的处理方式,而在markdown中则非常方便,由两个由三个`字符(反引号,键盘上Esc健以下,数字1左边的键)组成的行包起来的部分就是程序代码,如:

语法 效果

```
int main(int argc, char *argv[])
{
    printf("Hello, world!\n");
}
```

int main(int argc, char *argv[])
{
    printf("Hello, world!\n");
}

通常markdown编辑器还会允许设置代码段的语法,例如常见的C++JavaPython等等,迷你档可以设置三十余种语法,设置了语法后就可以显示代码内的语法信息:

语法 效果

```c++
int main(int argc, char *argv[])
{
    printf("Hello, world!\n");
}
```

int main(int argc, char *argv[])
{
    printf("Hello, world!\n");
}

代码段内不能使用一篇介绍的各种文本格式,图片,链接,所有的文本都是直接文本。

更多

markdown的全部基本写法都介绍完了,今后还会介绍更多的扩展写法。在此之前,下一篇将介绍怎样通过css设置文章的样式。

回到首页