Markdown 语法学习

这里介绍是 Markdown 的一些基本语法,方便大家学习。

最后编辑:2016.12.14
修改了页面中的部分不规范语法,使其表现更完善。

目录


Markdown 简介

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 页面。 —— 维基百科

你现在读的这些文字,就是使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接.


基本语法

标题

#号数量标示标题大小,
# 一号标题
## 二号标题
### 三号标题
#### 四号标题
##### 五号标题
###### 六号标题`

展示出来的样式

一号标题

二号标题

三号标题

四号标题

五号标题
六号标题

分隔线

通过利用分隔线可以使内容保持距离,使阅读者更容易阅读。
语法为***
注意:使用***,或—(三个减号),或___(三个下划线),均能实现此效果。
效果为下面这货


强调

使用*_加粗强调_*即可实现为包含内容强调的效果
效果为加粗强调
使用*斜体强调*即可实现为包含内容强调的效果
效果为斜体强调


链接

语法[百度] (www.baidu.com)以此实现起链接的效果
效果为百度
另外链接部分可以改为文章内的标题,实现文内的锚点链接
语法[基本语法] (#基本语法)
效果为基本语法


图片

语法与链接很像,不过前面要加上一个!
语法
! [图片名] (图片链接)
注意有的 Markdown 不支持本地文件上传,需要图片有网络地址,不过「简书」上支持截图直接上传和拖动直接上传,很是方便。


列表

列表分有序列表和无序列表
有序的很简单啦
1. 有序1
2. 有序2
效果为

  1. 有序 1
  2. 有序 2

而无序的语法为

1
2
3
- 无序
* 无序
+无序

注意:使用-,*,+都可以实现无序的排列,且没有先后顺序之分。但无序有一种包含的关系,在 Markdown 的语法里最高级的无序是实体黑心圆,次一级是空心圆,再次一次是实体正方形。
另外有序列表和无序列表中间需要分隔,不然会出现一些排版上的错误,大家可以动手体验一下就明白我说的是什么意思啦。

正常效果展示

  • 无序
    • 无序
      • 无序

表格

表格的语法在基本语法里麻烦一些,不过据粥粥实际使用来说,用个两三回就可以熟练掌握了,这里也会介绍的尽量仔细,方便其他读者查看。
语法:

第一栏|表头1|表头2|表头3|
第二栏|---|---|---|

注意:必须有第二栏\竖线的内容列表才能显示出来,如我们添加以下表格信息。

| 项目 价格 数量
电脑 ¥ 5600 5
手机 ¥ 4300 12
| 冰箱 ¥ 3100 234

展示效果如下

项目 价格 数量
电脑 ¥ 5600 5
手机 ¥ 4300 12
iPad ¥ 3100 234

补充:大家可能注意到第二栏中的:,这货就是用来做对齐用的,语法如下:
左对齐::—-
右对齐:—-:
居中对齐::—-:
大家在实际使用中试一两次很容易就明了啦。


引用

语法为>引用内容
嵌套的语法为>>引用也可以嵌套
效果为

引用内容

引用也可以嵌套呀


代码块

下面就是一堆代码
若是一行的话,可以用`代码内容`
效果如
代码内容

若是太多的话,直接
```代码块内容```

效果如下

1
2
3
4
5
6
7
8
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass

扩展语法

复选框

使用 - [ ]- [x] 语法可以创建复选框,实现 todo-list 等功能。效果如:

  • 已完成事项
  • 待办事项 1
  • 待办事项 2

LaTeX 公式

可以创建行内公式,例如 $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$。或者块级公式:

效果如
$$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$


流程图

流程图和时序属于 Markdown 中的扩展语法,因此在某些仅支持基本语法编辑器的页面中可能无法显示效果,大家可以换其他的试试,不过太嫌麻烦的话,用其他更专业的流程图工具会更好表现一些,毕竟 Md 更适用于标记文本信息,如果想查看实际效果,可以复制下面代码到马克飞象的在线编辑器中试一下。
这里主要补充一些粥粥搜集来的知识。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
st=>start: Start|past:>http://www.google.com[]
e=>end: End:>http://www.google.com
op1=>operation: My Operation|past
op2=>operation: Stuff|current
sub1=>subroutine: My Subroutine|invalid
cond=>condition: Yes
or No?|approved:>http://www.baidu.com
c2=>condition: Good idea|rejected
io=>inputoutput: catch something...|request

st->op1(right)->cond
cond(yes, right)->c2
cond(no)->sub1(left)->op1
c2(yes)->io->e
c2(no)->op2->e

流程图语法及解释

语法如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
st=>start: Start|past:>http://www.google.com[blank]
e=>end: End:>http://www.google.com
op1=>operation: My Operation|past
op2=>operation: Stuff|current
sub1=>subroutine: My Subroutine|invalid
cond=>condition: Yes
or No?|approved:>http://www.baidu.com
c2=>condition: Good idea|rejected
io=>inputoutput: catch something...|request

st->op1(right)->cond
cond(yes, right)->c2
cond(no)->sub1(left)->op1
c2(yes)->io->e
c2(no)->op2->e

流程图的语法大体分为两面,第一段用来定义元素,第二段用来连接元素
如 tag=>type: content:>url

  • 定义元素
    tag 是一个标签,在第二段连接元素时用
    type 是这个标签的类型,常见的类型有
1
2
3
4
5
6
7
8
9
- start
- end
- operation
- subroutine
- condition
-inputoutput

condition就是流程图的框里要写的内容,中英文均可,但是type后的冒号和文本间一定要有个空格,
不然会出问题,url指向一个连接,与框框中的文本绑定。
  • 连接元素
    直接用->连接两个元素,condition 有 yes 和 no 两个分支,因此要写成 cond(yes) cond(no)

时序图:

1
2
3
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am fine, thanks!

效果如下

1
2
3
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am fine, thanks!

注意:想了解更多,请查看流程图语法以及时序图语法