Markdown入门教程

Markdown入门教程

Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。

Markdown介绍

Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。 如GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、简书等,甚至还能被使用来撰写电子书。
对于程序员来讲,使用Markdown做笔记比使用.txt和word要方便很多!


编辑器

本教程使用Typora讲解Markdown的基本语法,这是一个跨平台的编辑器,支持windows、MasOS和Linux操作系统,导出支持HTML、PDF、Word、图片等类型的文件。
可以在Typora官网上下载此编辑器 Typora官网✈

添加扩展语法

在官网上下载安装完Typora后,进入设置添加扩展语法,
方法如下:

偏好设置

在Markdown里把扩展语法都勾上

随后,我们就能使用Markdown的扩展语法了。

Markdown教程

一、标题

在想要设置为标题的文字前面加#来表示

一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。

注:标准语法一般在#后跟个空格再写文字,貌似简书不加空格也行。

示例:

1
2
3
4
5
6
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题

效果如下:

六级标题效果图

二、字体

  • 加粗

要加粗的文字左右分别用两个*号包起来

  • 斜体

要倾斜的文字左右分别用一个*号包起来

  • 斜体加粗

要倾斜和加粗的文字左右分别用三个*号包起来

  • 删除线

要加删除线的文字左右分别用两个~~号包起来

示例:

1
2
3
4
**这是加粗的文字**
*这是倾斜的文字*`
***这是斜体加粗的文字***
~~这是加删除线的文字~~

效果如下:

这是加粗的文字
这是倾斜的文字
*这是斜体加粗的文字*
这是加删除线的文字


三、分割线

三个或者三个以上的 - 或者 * 都可以。

示例:

1
2
3
4
---
----
***
*****

效果如下:
可以看到,显示效果是一样的。





四、图片

语法:

1
2
3
4
![图片alt](图片地址 ''图片title'')

图片alt就是显示在图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加可不加

示例:

1
![Hello](https://cdn.jsdelivr.net/gh/fatsheeps/mypicgo@master/202108161606482.png)

Hello

五、超链接

语法:

1
2
[超链接名](超链接地址 "超链接title")
title可加可不加

示例:

1
[百度](http://baidu.com)

效果如下:

百度

六、列表

无序列表

语法:
无序列表用 - + * 任何一种都可以

1
2
3
4
5
- 列表内容
+ 列表内容
* 列表内容

注意:- + * 跟内容之间都要有一个空格

效果如下:

  • 列表内容
  • 列表内容
  • 列表内容
有序列表

语法:
数字加点

1
2
3
4
5
1. 列表内容
2. 列表内容
3. 列表内容

注意:序号跟内容之间要有空格

效果如下:

  1. 列表内容
  2. 列表内容
  3. 列表内容
列表嵌套

上一级和下一级之间敲三个空格即可

  • 一级无序列表内容
    • 二级无序列表内容
    • 二级无序列表内容
    • 二级无序列表内容
  • 一级无序列表内容
    1. 二级有序列表内容
    2. 二级有序列表内容
    3. 二级有序列表内容
  1. 一级有序列表内容
    • 二级无序列表内容
    • 二级无序列表内容
    • 二级无序列表内容
  2. 一级有序列表内容
    1. 二级有序列表内容
    2. 二级有序列表内容
    3. 二级有序列表内容

七、区块

一个单独的区块

在开头使用>即可,如:

1
2
> 区
> 块

效果如下:

区块嵌套

区块也可以像列表那样可以嵌套一个>最外层,两个>则是第二层,如:

1
2
3
4
> 区
> >块
>>>嵌
>>>>套

区块与列表的混用

在区块中是可以使用列表的,如:

1
2
3
4
5
6
7
> 姓名:
> 学号:
> 成绩:
> * 数学
> * 语文
> * 英语
> 日期

效果如下:

姓名:
学号:
成绩:

  • 数学
  • 语文
  • 英语
    日期

当然,在列表中也能使用区块:

1
2
3
4
5
6
7
* 姓名:
* 学号:
* 成绩:
> * 数学
> * 语文
> * 英语
* 日期:

效果如下:

  • 姓名:
  • 学号:
  • 成绩:
    • 数学
    • 语文
    • 英语
  • 日期:

八、表格

表格的制作

Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。

举例:

1
2
3
4
|  表头   | 表头  |
| ---- | ---- |
| 单元格 | 单元格 |
| 单元格 | 单元格 |

我们能得到:

表头 表头
单元格 单元格
单元格 单元格

表格的对齐方式

我们可以设置表格的对齐方式:
-: 设置内容和标题栏居右对齐。
:- 设置内容和标题栏居左对齐。
:-: 设置内容和标题栏居中对齐。
实例如下:

1
2
3
4
| 左对齐 | 右对齐 | 居中对齐 |
| :-----| ----: | :----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
左对齐 右对齐 居中对齐
单元格 单元格 单元格
单元格 单元格 单元格

九、代码

语法:
单行代码:代码之间分别用一个反引号包起来

注意:反引号不是单引号

1
`代码内容`

代码块:代码之间分别用三个反引号包起来,且两边的反引号单独占一行

1
2
3
4
5
(```)
代码...
代码...
代码...
(```)

注:为了防止转译,前后三个反引号处加了小括号,实际是没有的。这里只是用来演示,实际中去掉两边小括号即可。

示例:

单行代码

1
`create database hero;`

代码块

1
2
3
4
5
6
(```)
function fun(){
echo "这是一句非常牛逼的代码";
}
fun();
(```)

效果如下:

单行代码

create database hero;

代码块

1
2
3
4
function fun(){
echo "这是一句非常牛逼的代码";
}
fun();

十、其他的一些语法

高亮

在需要重点标注的词句两侧加上==

1
我滴好兄弟,你可真==聪明==啊!

我滴好兄弟,你可真==聪明==啊!

下标

下标的词句两侧加上~

1
H~2~O

H2O

上标

上标的词句两侧加上^

1
y = e^x+1^

y = e^x+1^

转义

如果需要显示特定的符号则需要使用转义字符,Markdown 使用反斜杠转义特殊字符:

1
2
**文本加粗** 
\*\* 正常显示星号 \*\*

文本加粗

** 正常显示星号 **

公式

当你需要在编辑器中插入数学公式时,可以使用两个美元符 $$ 包裹 TeX 或 LaTeX 格式的数学公式来实现。提交后,问答和文章页会根据需要加载 Mathjax 对数学公式进行渲染。如

1
2
3
4
5
6
7
8
$$
\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)}}
$$

结果为:
$$
\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)}}
$$

typora 画流程图、时序图(顺序图)、甘特图

因本站无法渲染某些出某些效果还请复制以下代码使用 typora 的源码模式粘贴到编辑器中查看效果:

typory源码模式开启关闭快捷键Ctrl+/

以下几个实例效果图如下:

1、横向流程图源码格式:

1
2
3
4
5
6
graph LR
A[方形] -->B(圆角)
B --> C{条件a}
C -->|a=1| D[结果1]
C -->|a=2| E[结果2]
F[横向流程图]
graph LR
A[方形] -->B(圆角)
    B --> C{条件a}
    C -->|a=1| D[结果1]
    C -->|a=2| E[结果2]
    F[横向流程图]

2、竖向流程图源码格式:

1
2
3
4
5
6
graph TD
A[方形] --> B(圆角)
B --> C{条件a}
C --> |a=1| D[结果1]
C --> |a=2| E[结果2]
F[竖向流程图]

graph TD
A[方形] --> B(圆角)
    B --> C{条件a}
    C --> |a=1| D[结果1]
    C --> |a=2| E[结果2]
    F[竖向流程图]

3、标准流程图源码格式:

1
2
3
4
5
6
7
8
9
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op

4、标准流程图源码格式(横向):

1
2
3
4
5
6
7
8
9
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op

5、UML时序图源码样例:

1
2
3
4
5
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象A->对象B: 你真的好吗?

6、UML时序图源码复杂样例:

1
2
3
4
5
6
7
8
9
10
11
Title: 标题:复杂使用
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象B->小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C
Note right of C: 没人陪我玩

7、UML标准时序图样例:

1
2
3
4
5
6
7
8
9
10
11
12
%% 时序图例子,-> 直线,-->虚线,->>实线箭头
sequenceDiagram
participant 张三
participant 李四
张三->王五: 王五你好吗?
loop 健康检查
王五->王五: 与疾病战斗
end
Note right of 王五: 合理 食物 <br/>看医生...
李四-->>张三: 很好!
王五->李四: 你怎么样?
李四-->王五: 很好!
%% 时序图例子,-> 直线,-->虚线,->>实线箭头
  sequenceDiagram
    participant 张三
    participant 李四
    张三->王五: 王五你好吗?
    loop 健康检查
        王五->王五: 与疾病战斗
    end
    Note right of 王五: 合理 食物 <br/>看医生...
    李四-->>张三: 很好!
    王五->李四: 你怎么样?
    李四-->王五: 很好!

8、甘特图样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
%% 语法示例
gantt
dateFormat YYYY-MM-DD
title 软件开发甘特图
section 设计
需求 :done, des1, 2014-01-06,2014-01-08
原型 :active, des2, 2014-01-09, 3d
UI设计 : des3, after des2, 5d
未来任务 : des4, after des3, 5d
section 开发
学习准备理解需求 :crit, done, 2014-01-06,24h
设计框架 :crit, done, after des2, 2d
开发 :crit, active, 3d
未来任务 :crit, 5d
耍 :2d
section 测试
功能测试 :active, a1, after des3, 3d
压力测试 :after a1 , 20h
测试报告 : 48h

参考资料