轻松撰写文档:Markdown 简介与常用语法
0. 引言
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、CSDN、博客园、reddit、Stack Exchange等。为了提高自己的文档撰写效率、方便与同行之间的交流,我们很有必要去掌握 Markdown 的使用。
网络上有很完整的 Markdown教程,但实际上我们只会使用其中一部分的语法知识,而且这些语法在应用到不同平台时有一些差异。因此,本文主要总结 Markdown 的常用语法和平台实践经验。
1. 基本语法
1.1 标题
使用 # 号可表示 1-6 级标题,一级标题对应一个 # 号,二级标题对应两个 # 号,以此类推。
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
显示效果如下:
一级标题
二级标题
三级标题
四级标题
1.2 段落格式
可以在段落后面使用一个空行来表示分段,会出现一个较大的间距,不同于长文本自然产生的行间距。以下展示分段的显示效果:
第一段,较长,可占据两行。Markdown 是一种**轻量级标记语言**,它允许人们使用易读易写的纯文本格式编写文档。当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、CSDN、博客园、reddit、Stack Exchange等。为了提高自己的文档撰写效率、方便与同行之间的交流,我们很有必要去掌握 Markdown 的使用。
第二段,较短,占据一行。
第一段,较长,可占据两行。Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、CSDN、博客园、reddit、Stack Exchange等。为了提高自己的文档撰写效率、方便与同行之间的交流,我们很有必要去掌握 Markdown 的使用。
第二段,较短,占据一行。
第一段,较长,可占据两行。Markdown 是一种**轻量级标记语言**,它允许人们使用易读易写的纯文本格式编写文档。当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、CSDN、博客园、reddit、Stack Exchange等。为了提高自己的文档撰写效率、方便与同行之间的交流,我们很有必要去掌握 Markdown 的使用。
第二段,较短,占据一行。
第一段,较长,可占据两行。Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、CSDN、博客园、reddit、Stack Exchange等。为了提高自己的文档撰写效率、方便与同行之间的交流,我们很有必要去掌握 Markdown 的使用。
第二段,较短,占据一行。
1.3 字体格式
Markdown 可以使用以下几种字体::斜体文本,粗体文本,粗斜体文本,语法规则如下:
*斜体文本*,**粗体文本**,***粗斜体文本***
1.4 线格式
在文字的两端加上两个波浪线 ~~
和 HTML 的 <u>
可以分别添加删除线和下划线。
~~BAIDU.COM~~
<u>带下划线文本</u>
显示效果如下:
BAIDU.COM
带下划线文本
1.5 列表
Markdown 支持有序列表和无序列表。
1.5.1 无序列表
无序列表使用星号 *
作为列表标记,添加一个空格后再填写内容。
* 第一项
* 第二项
* 第三项
显示效果如下:
- 第一项
- 第二项
- 第三项
1.5.2 有序列表
有序列表使用数字并加上 .
号来表示。
1. 第一项
2. 第二项
3. 第三项
显示效果如下:
- 第一项
- 第二项
- 第三项
1.5.3 列表嵌套
列表嵌套只需在子列表中的选项前面添加四个空格即可。
1. 第一项:
* 第一项嵌套的第一个元素
* 第一项嵌套的第二个元素
2. 第二项:
* 第二项嵌套的第一个元素
* 第二项嵌套的第二个元素
- 第一项:
- 第一项嵌套的第一个元素
- 第一项嵌套的第二个元素
- 第二项:
- 第二项嵌套的第一个元素
- 第二项嵌套的第二个元素
如果是段落上的一个函数或片段的代码可以用反引号把它包起来,例如:printf()
函数。
1.6 区块引用
在段落开头使用 > 符号 ,然后后面紧跟一个空格符号:
> 区块引用
> 菜鸟教程
> 学的不仅是技术更是梦想
显示效果如下:
区块引用
菜鸟教程
学的不仅是技术更是梦想
区块是可以嵌套的,一个 > 符号是最外层,两个 > 符号是第一层嵌套,以此类推。另外,可以在区块中使用列表,也可以在列表中使用区块。
1.7 代码
如果是段落上的一个函数或片段的代码可以用反引号把它包起来(`),例如:
`printf()` 函数
显示效果:printf()
函数
对于多行代码,可以用 ``` 包裹,并指定一种语言(也可以不指定):
```javascript
$(document).ready(function () {
alert('RUNOOB');
});
```
显示效果如下:
$(document).ready(function () {
alert('RUNOOB');
});
1.8 链接
[链接名称](链接地址)
或者 <链接地址>
,效果如下所示:
这是一个链接 菜鸟教程
直接使用链接地址:https://www.runoob.com
1.9 图片
Markdown 图片语法格式如下:


使用实例:

Markdown 还没有办法指定图片的高度与宽度,如果你需要的话,你可以使用普通的 <img>
标签。例如:<img src="http://static.runoob.com/images/runoob-logo.png" width="30%">
。
1.10 高级技巧
不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。目前支持的 HTML 元素有:<kbd>
<b>
<i>
<em>
<sup>
<sub>
<br>
等。
Markdown 使用了很多特殊符号来表示特定的意义,如果需要显示特定的符号则需要使用转义字符,Markdown 使用反斜杠\
转义特殊字符。
当你需要在编辑器中插入数学公式时,可以使用两个美元符 $$ 包裹 TeX 或 LaTeX 格式的数学公式来实现。提交后,问答和文章页会根据需要加载 Mathjax 对数学公式进行渲染。例如:
$$
\mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
${$tep1}{\style{visibility:hidden}{(x+1)(x+1)}}
$$
显示效果为:
2. 应用平台
2.1 本地软件
推荐使用 Typora 软件来阅读、编辑 Markdown 文档。Typora 支持 MacOS 、Windows、Linux 平台,且包含多种主题,编辑后直接渲染出效果,也支持导出 HTML、PDF、Word、图片等多种类型文件。
2.2 在线网站
2.2.1 主流网站及其差异
GitHub 使用一种被称为“GitHub 风格的 Markdown 语法”(GFM)来书写版本注释、Issue 和评论。它和标准 Markdown 语法(SM)相比,存在一些值得注意的差异,并且增加了一些额外功能。
2.2.2 文章中图片的处理
在GitHub、CSDN和博客园等撰写 Markdown 文档时,经常需要上传图片,代码一般是这么显示的
,但这种形式没有办法进行图片居中或者修改大小。PS:图片链接是上传后平台分配的,而不是自己的本地路径。
Markdown 支持一些 HTML 代码,因此可以使用 img 等标签来完成图片缩放和居中等功能。
博客园使用 div 标签的 align 属性来完成居中的工作,使用 image 标签中的 style 属性来进行图片缩放,如下所示。
<div align=center/right(默认是居左的)>
<img style="zoom:80%" src="图片链接" alt="图片名称">
</div>
CSDN对于上传后的图片分配的链接很复杂,包括水印(图片链接.png 后面的一大串内容)、图片位置(#pic_center)等信息,可以根据需要自行删除和调整。建议仅使用 img 标签来完成相关操作,不需要使用 div 标签。