**Markdown**是Aaron Swartz[^AS]跟John Gruber于2004年共同设计的排版语言,是一种轻量级的「标记语言」。
请不要被「标记」、「语言」所迷惑,Markdown的语法十分简单。常用的也不超过十个,这种相对于更为复杂的HTML标记语言来说,Markdown可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果!
$E=mc^2$
@requires_authorization
class SomeClass:
pass
if__name__=='__main__':
# A comment
print 'hello world'
st=>start: 今晚干什么
cond=>condition: 会下雨吗?
op=>operation: 出去唱K
op2=>operation: 在家看电视
e=>end: 睡觉
st->cond
cond(yes)->op2->e
cond(no)->op->e
小明->如花:嗨,如花MM,约吗?
Note left of 小明:请用"不约而同"造句
如花-->小明:不约儿童!
项目 | 价格 | 数量 |
---|---|---|
电脑 | ¥4000 | 1 |
手机 | ¥2000 | 5 |
管线 | ¥15 | 20 |
使用 *
和 **
表示斜体和粗体。
这是*斜体*,这是**粗体**。
三个星号用来表示***斜粗体***。
Markdown最多支持6个级别的标题设置。分级标题有两种设置方式:
第一种,是在文字下方加横线;
这是一级标题
===
这是二级标题
---
第二种,可以选择在行首加井号表示不同级别的标题(H1~H6)。建议在井号后加一个空格,这是最标准的Markdown书写方式。
# 1号标题
## 2号标题
### 3号标题
使用[描述](链接地址)
为文字增加外链接。
示例:
[百度](http://wwww.baidu.com)一下,你就知道!
效果:
百度一下,你就知道!
使用*
、+
、-
均可以表示无序列表。
示例:
* 我是无序列表项一
+ 我是无序列表项二
- 我是无序列表项三
效果:
使用数字和点表示有序列表。
1. 我是有序列表项一
2. 我是有序列表项二
3. 我是有序列表项三
使用>
表示文字引用。
示例:
> 有个小孩叫小明,小明没听见。
效果:
有个小孩叫小明,小明没听见。
使用`代码`表示行内代码块。
示例:
这是设置字体颜色的html代码`<font color="red">红色</font>`。
效果:
这是设置字体颜色的html代码<font color="red">红色</font>
。
使用四个缩进空格或```表示代码块。
<table>
<tr>
<th rowspan="2">姓名</th>
<th>小明</th>
<th>如花</th>
<th>王尼玛</th>
</tr>
</table>
使用![描述](图片链接地址)
插入图像。
示例:
![百度](http://okdlccb4a.bkt.clouddn.com/QQ%E5%9B%BE%E7%89%8720170330181242.png)
效果:
在文中任意位置输入[TOC]
即可显示全文内容的目录结构。效果同本文开头的目录结构显示。
使用~~
表示删除线。
~~这是一段错误的文本。~~
使用[^keyword]
表示注脚。必须在文末写出注脚的内容,才能正确显示注脚样式效果。
示例:
这是一个注脚[^footnote]的样例。
这是第二个注脚[^footnote2]的样例。
[^footnote]: 第一个注脚
[^footnote2]: 第二个注脚
效果:
这是一个注脚[^footnote]的样例。 这是第二个注脚[^footnote2]的样例。
使用$
表示行内公式。
示例:
质能守恒方程可以用一个很简洁的方程式 $E=mc^2$ 来表示。
效果:
质能守恒方程可以用一个很简洁的方程式 $E=mc^2$ 来表示。
使用$$
表示整行公式。
示例:
$$\sum_{i=1}^n a_i=0$$
$$f(x_1,x_2,\ldots,x_n)=x_1^2+x_2^2+\cdots+x_n^2$$
效果:
$$\sum_^n a_i=0$$
$$f(x_1,x_2,\ldots,x_n)=x_1^2+x_2^2+\cdots+x_n^2$$
使用```,可以支持41种编程语言的语法高亮显示。
示例:
```python
@requires_authorization
def somefunc(param1='',param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
```
效果:
@requires_authorization
def somefunc(param1='',param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
绘制流程图以flow
开始。
流程图的语法大体分为两段:第一段用来定义元素,第二段用来连接元素。
定义元素阶段的语法是:tag=>type: content:>url
tag
就是一个标签(可以自定义,也可以理解成变量名),在第二段连接元素时用。
type
是这个标签的类型。有6种基本类型,分别为:start、end、operation、subroutine、condition、inputoutput。
content
就是在框中要写的内容,中英文均可,但有一点需要特别注意,就是type后的冒号与文本之间一定要有一个空格,没空格会出问题。
url
就是一个链接,与框中的文本相绑定。
连接元素阶段的语法就简单多了,直接用->
来连接两个元素(condition类型有yes和no两个分支)。
示例:
```flow
ihq=>start: 我有一个问题
dm=>condition: 弄明白了吗?
my=>operation: 百度一下,你就知道!:>http://www.baidu.com
dl=>operation: 继续装懂!
e=>end: 结束
ihq->dm
dm(yes)->dl->e
dm(no)->my->e
```
效果:
ihq=>start: 我有一个问题
dm=>condition: 弄明白了吗?
my=>operation: 百度一下,你就知道!:>http://www.baidu.com
dl=>operation: 继续装懂!
e=>end: 结束
ihq->dm
dm(yes)->dl->e
dm(no)->my->e
绘制序列图以sequence
开始。
示例:
```seq
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good, thanks!
```
效果:
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good, thanks!
示例:
|日期|3月1日|3月2日|3月3日|
|---|---|:---:|---:|
|值日生|小明|如花|王尼玛|
效果:
日期 | 3月1日 | 3月2日 | 3月3日 |
---|---|---|---|
值日生 | 小明 | 如花 | 王尼玛 |
注意:第二行用来表示字体显示的位置。-
表示靠左,-:
表示靠右,:-:
表示居中。
可以在Markdown语法中嵌套HTML标签。
示例:
**<font color="#F46969">我是一行红色*加粗*的文字。</font>**
效果:
我是一行红色加粗的文字。
使用带有[]
或[x]
(未完成或已完成)项的列表语法可以撰写一份待办事宜列表,并且支持子列表嵌套以及混用Markdown语法。
示例:
- [] **5月欧洲旅游**
- [x] 在预定好的米其林享用星级大餐
- [] 在迷宫般的小巷里找到最受本地人欢迎的秘密小馆
- [] 去夜市大快朵颐
效果:
Markdown因其易学性和便捷性,受到越来越多人的欢迎。
使用Markdown进行排版可以大大地节省你在排版中所花费的时间,让你更加专注于写作。
一旦你开始使用它,你一定会深深爱上它!
[^AS]: Aaron Swartz是一个富有传奇性的人物。他曾经利用麻省理工学院网络,伪造身份,侵入收费不菲的JSTOR论文数据库,总共下载480万篇论文,以供公众免费下载,他也因此被联邦政府起诉逮捕。他于2013年自杀,年仅27岁。 [^footnote]: 第一个注脚 [^footnote2]: 第二个注脚