一、为什么要学习 Markdown?
- 语法简练,上手迅速
- 纯文本、轻量级
- 支持协作开发
- 所想即所得
- 跨平台、高兼容
- 使用广泛
二、Markdown 语法
2.1 标题
使用多个 #
的方式实现标题,Markdown 支持 1 ~ 6 级标题,6级标题以上将不会被识别。
1 | # 一级标题 |
2.2 粗体、斜体、删除、分割线、更改颜色
使用单个 *
号包裹文字,实现斜体的效果:
1 | *这是斜体效果* |
使用两个 *
号包裹文字,实现粗体的效果:
1 | **这是粗体效果** |
使用两个 ~
号包裹文字,实现删除的效果:
1 | ~~这是删除效果~~~ |
使用连续三个短横线 -
实现添加分割线:
1 | --- |
Markdown 不支持文字更改颜色,如需支持,请使用 HTML 标签,例如红色:
1 | <font color="red">红色</font> |
2.3 有序列表、无序列表
使用数字加+ .
加空格实现有序列表:
1 | 1. 水果 |
使用短横线 -
加空格实现无序列表:
1 | - 北京 |
如果想实现多级列表,子列表应保持与父列表2个或4个空格缩进:
1 | - 北京 |
2.4 表格
-
表格第一行为表头,通过
|
分割每一列,在|
中间填写表头信息。 -
表格第二行为表格信息,使用
|
分割列,每两个|
中间使用-
填充。- 默认表格居中对齐
- 在
-
左侧添加:
将该列左对齐 - 在
-
右侧添加:
将该列右对齐
-
从第三行开始为表格体信息。
1 | |列1|列2|列3| |
Tips:表格每个单元格内不支持换行,如果需要换行,请使用
<br>
标签。
2.5 超链接、图片、视频
使用如下方式实现超链接:
1 | [文字描述](链接网址) |
Tips: Markdown 超链接不支持新窗口打开,如需要,请使用
<a target="_blank">
实现。
使用如下方式实现插入图片:
1 | ![图片描述](图片网址) |
Tips: Markdown 图片不支持居中对齐、调整大小,如需要,请使用:
<img src="图片网址" alt="图片描述" width="80%" height="80%">
建议
width
和height
建议只设置一个,避免图片拉伸。
Markdown 本身是不支持视频的,但是我们可以通过 HTML 的 Iframe 来实现,在大部分的视频网站中,通过点击视频下方的获取嵌入代码
,并将其粘入 Markdown 中即可。
Tips:视频自适应大小在 Markdown 中的实现比较复杂,受限于 Iframe 的特性,一般需要通过调整渲染的样式或其他途径来实现。例如在 Hexo 中调整主题的样式实现,或在 Gitbook 中按转换视频插件。
2.6 块与引用
使用 >
实现块级引用,一般用于引用其他出处内容。
1 | >鲁迅曾今说过:... |
块引用也支持多级嵌套,例如二级嵌套:
1 | >这是一级块引用 |
Tips: 块引用中多段文字不支持空行,如需添加空行,请使用
<br>
使用反单引号包裹文字,实现行内引用,一般用于名词,例如:
1 | `Nginx` 是一个。。。 |
Markdown 支持插入代码块,使用三个反单引号加要高亮的语言名包裹代码块实现。
1 | public static void main(String[] args) { |
Tips: 具体支持哪些语言由 Markdown 解析引擎来决定,但是常用的语言均支持
3.7 数学公式
绝大部分 Markdown 解释引擎支持 Mathjax
数学公式,详细的使用说明可以参考文章:https://blog.csdn.net/qq_36148847/article/details/79419814,这里只列出常见的符号。
使用 \frac{}{}
表示除法,使用 \ast
表示乘号,例如:
1 | f(x) = \frac{a+b}{a \ast b} |
渲染结果为:
使用 ^
和 _
分别表示上标和下标,使用 \sum_{}^{}
表示求和符号,例如:
1 | \sum_{n=1}^{n<10} n^2 + 2 |
渲染结果为:
3.8 目录
Markdown 原生不支持目录,但是绝大部分的 Markdown 引擎都支持,一般使用 [toc]
实现,少部分使用 @[toc]
实现。
3.9 首行缩进
Markdown 本身不支持首行缩进,因此在中文模式下可以使用  
实现空出一个中文字符,例如:
1 |   首行缩进两个字符 |
3.10 更多用法
Markdown 还支持更多功能,例如制作流程图、甘特图等,但上手难度大,与传统方式相比优势不大,因此看个人喜好而定。
三、CommonMarkdown
Markdown 于2004年被开发,至今已经有几十种转HTML的实现方式。由于早期缺少规范,各个解释器各自为战,所以可能出现你编写的Markdown在有的解释器上能够渲染,有的无法渲染。
雪上加霜的是,Markdown没有语法错误的说法,所以你可能无法即时的发现错误,导致文档不能体现跨平台的优点。
CommonMark 就是一个强定义规范,包含Markdown创始人参与,规范严格,基本适应所有的编辑器。