Markdown 基本语法回顾

What

Markdown 是一种轻量级标记语言。

所谓标记语言,指的是用特定语法来描述带有格式、结构或语义的文本信息的语言类型,HTML、XML、Tex 等都是常见的标记语言。轻量级标记语言的轻量体现在它的语法简单:语法标记的数量较少、格式简洁;由于尽量简化了语法标记,其表达形式更接近自然语言;并且可以方便的使用简单的文本编辑器进行编辑。

Why

Markdown 让人们能够专注于写作本身而不必为了文档格式在鼠标键盘之间来回切换。如果你经常感觉 Word 太臃肿,而记事本虽然简洁但却不能提供格式支持,那么 Markdown 将是你不错的选择。Markdown 的特性可以用一句话总结:用最精简的标签来实现文本格式化。

How

像所有标记语言一样,Markdown 需要使用解析器来进行解析,一般解析器会将 Markdown 文件解析为 HTML,有些解析器可以直接保存为 PDF 文档。由于 Markdown 轻量的特性,主流程序语言也都有 Markdown 解析器的实现。

Markdown 基本语法

这里只介绍了 Markdown 的基本语法,深入学习 Markdown 请移步 Markdown 语法说明

标题

Markdown 语法中在文字前添加1个至6个井号(#)将文字渲染为 1 级至 6 级标题,例如:

#### 四级标题
##### 五级标题
###### 六级标题

将渲染为:

四级标题

五级标题
六级标题

需要注意,标准 Markdown 语法中 # 与文字中间有一个空格,缺少空格可能导致部分 Markdown 解析器不能正确解析。

段落与换行

Markdown 语法中使用一个空行来生成一个段落,单独的换行符会被 Markdown 忽略,如果希望强制换行,可以在行尾添加两个空格再使用换行符即可。如:

这是第一段

这是第二段

将生成两个段落,而:

这是第一行  
这是第二行

将生成两行(注意第一行行尾有两个空格)。

粗体与斜体

Markdown 语法中分别使用 **粗体内容***斜体内容* 生成粗体及斜体文本,效果如下:粗体内容斜体内容

列表

Markdown 可以生成无序列表和有序列表。只需要简单的在一行文本前添加 +-*,即可使该行文本成为无序列表项,在同一个无序列表中必须使用相同的符号,更换符号将会生成一个全新的无序列表。

要使用有序列表,则需要在一行文本前添加 1.,有序列表标签中的数字不会影响生成的列表数字。

注意无论是无序列表还是有序列表,符号和文本之间要用空格隔开。

例如:

+ 无序列表1
+ 无序列表1


+ 无序列表2
+ 无序列表2

将会生成两个无序列表:

  • 无序列表1
  • 无序列表1
  • 无序列表2
  • 无序列表2

1. 有序列表
1. 有序列表
1. 有序列表

效果如下:

  1. 有序列表
  2. 有序列表
  3. 有序列表

引用

使用引用块来标注从其他媒体引用的语句,要为某段文字添加引用格式,只需要在这段文字前面添加 > 即可,例如:

> 这是引用格式,引用格式通常用来标识从其他媒体引用的文字
换行不能结束引用格式,要结束引用格式,请创建一个新段落

解析后的效果是:

这是引用格式,引用格式通常用来标识从其他媒体引用的文字
换行不能结束引用格式,要结束引用格式,请创建一个新段落

可以看到,只需要在一个段落前添加 > 符号,整个段落就会变成引用格式,必须通过创建新段落来结束引用格式。此外,换行及 Markdown 强制换行语法都不能结束引用格式。

代码

Markdown 提供了两种代码支持,使用 `代码内容` 可以使用行内代码格式,生成 代码内容 这种格式。另外,使用 1 个制表符或 4 个空格或 ``` 可以生成代码块,如:

```
This is a code block
Markdown tags and some other tags in this block will not be resolved
**Test**
```

代码快必须单独占用一个段落,Markdown 会移除制表符或空格,其他内容(包括剩余的制表符、空格或换行符)原样输出:

This is a code block
Markdown tags and some other tags in this block will not be resolved
**Test**

后记

Markdown 的本意就是让写作者抛开繁复的文本格式化工作,专心投入到写作当中,Markdown 直观简洁的语法也确实做到了这点。花一点时间了解一下 Markdown 的基本语法并稍加练习,相信你会像我一样喜欢上 Markdown。