什么是 Markdown
Markdown 是一种轻量级标记语言,它由 Aaron Swartz 和 John Gruber 共同设计。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档”。
为什么要用 Markdown
- 干净的纯文本,简单易学,可读性强,让使用者可以更好地专注于文字创作本身。
- 跨平台;越来越多的网站支持 Markdown 语法,历史进程不可阻挡。
- 兼容 HTML 语法。
基础语法
标题
n 级标题,以 n 个 # 号开头,支持一到六级标题。
# 一级标题 test
## 二级标题 test
### 三级标题 test
#### 四级标题 test
实际效果:
一级标题 test
二级标题 test
三级标题 test
四级标题 test
水平分割线
连续三个或以上的中划线 -
或星号 *
或下划线 _
(当前后都有段落时,前后最好都空出一行)。
---
实际效果:
换行
在行尾输入两个或以上的空格,然后回车。
引用块
右尖括号('>') + 空格。根据排版渲染出来的实际效果,可以选择只在开头加一个或者每行前面都加一个。引用可以嵌套,根据嵌套层次加相应数量的符号即可。
> 外层引用的第一行
外层引用的第二行
>> 内层嵌套引用的第一行
内层嵌套引用的第二行
>
> 外层引用的第三行。上面需要一个空行表示内层嵌套引用的结束,空行前面的('>')可有可无
实际效果:
外层引用的第一行
外层引用的第二行内层嵌套引用的第一行
内层嵌套引用的第二行外层引用的第三行。上面需要一个空行表示内层嵌套引用的结束,空行前面的('>')可有可无
强调
两侧各加上一个星号:*斜体*
两侧各加上两个星号:**粗体**
两侧各加上三个星号:***粗斜体***
两侧各加上一个反引号:`高亮`
两侧各加上两个波浪号:~~删除线~~
实际效果:
两侧各加上一个星号:斜体
两侧各加上两个星号:粗体
两侧各加上三个星号:粗斜体
两侧各加上一个反引号:高亮
两侧各加上两个波浪号:删除线
列表
有序列表
1. 有序列表 1(数字 + . + 空格)
2. 有序列表 2
8. 有序列表 3(数字不对也没关系,渲染时会自动变成正确的序号)
实际效果:
- 有序列表 1(数字 + . + 空格)
- 有序列表 2
- 有序列表 3(数字不对也没关系,渲染时会自动变成正确的序号)
无序列表
- 无序列表 1(中划线 + 空格)
- 嵌套无序列表 1(前面加空格或一个 Tab)
- 嵌套无序列表 2(前面加空格或一个 Tab)
+ 无序列表 2(加号 + 空格)
* 无序列表 3(星号 + 空格)
实际效果:
- 无序列表 1(中划线 + 空格)
- 嵌套无序列表 1(前面加空格或一个 Tab)
- 嵌套无序列表 2(前面加空格或一个 Tab)
- 无序列表 2(加号 + 空格)
- 无序列表 3(星号 + 空格)
链接
行内式链接(推荐!易读,一眼就能看穿要跳到的链接地址):[Inline-style link](https://github.com/)
参考式链接 1:[Reference-style link 1][777]
参考式链接 2:[Reference-style link 2][Reference-Text]
// 参考式链接的实际链接地址一般都放在文档最后的脚注再赋值,前面放上链接引用标签区分
[777]: https://zh.wikipedia.org/wiki/Markdown
[Reference-Text]: https://en.wikipedia.org/wiki/Markdown
实际效果:
行内式链接(推荐!易读,一眼就能看穿要跳到的链接地址):Inline-style link
参考式链接 1:Reference-style link 1
参考式链接 2:Reference-style link 2
图片
和链接相似,在链接的基础上,前方加一个感叹号 !
即可。
![图片名称](https:https://img.haomeiwen.com/i2457926/55f6d36f163899ce.png)
实际效果:
图片名称
进阶语法
表格
| name | age | hobby |
| :--- | ---: | :---: |
| :--- 表示左对齐 | ---: 表示右对齐 | :---: 表示居中 |
| Li lei | 4 | sports |
| Han Meimei | 55 | music |
| Jack Ma | 666 | money |
实际效果:
name | age | hobby |
---|---|---|
:--- 表示左对齐 | ---: 表示右对齐 | :---: 表示居中 |
Li lei | 4 | sports |
Han Meimei | 55 | music |
Jack Ma | 666 | money |
代码块高亮
开始和结束各使用三个反引号 ``` 包裹一段代码,并在开始的三个反引号 ``` 后指定一种语言(不同平台的代码高亮样式会有所不同)。
```Go
package mainimport "fmt"
func main() {
fmt.Println("Hello, World!")
}
`````` javascript(部分平台可能需要先加一个空格再指定语言)
var s = "JavaScript";
console.log(s);
```
实际效果:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
var s = "JavaScript";
console.log(s);
复选框(简书貌似不支持渲染复选框,故不能展示实际效果)
可用来实现 Todo List 功能。
- [x] 已完成事项 1
- [x] 已完成事项 2
- [ ] 待办事项 1
- [ ] 待办事项 2
- [ ] 待办事项 3
转义符
反斜杠 \
。当在文档中需要使用到 Markdown 的符号(比如 - # *
),不想它被转义,则在符号前加上反斜杠即可。
\*\*不想加粗\*\*
实际效果:
**不想加粗**
特殊语法
以下特殊语法考虑到不同平台的支持限制,故只说明语法,不再展示效果(实际效果可以在支持该语法的平台中测试)。
脚注
脚注[^keyword]
// 脚注和参考式链接的赋值类似,一般都推荐放在文档的最后再赋值
[^keyword]: 这是一个示例脚注。
LaTeX 公式
行内公式:$E=mc^2$
块级公式:
$$E=mc^2$$
流程图
```flow
st=>start: Start
op=>operation: Your Operation
cond=>condition: Yes or No?
e=>endst->op->cond
cond(yes)->e
cond(no)->op
```
更详细的流程图语法。
时序图
```sequence
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
```
更详细的时序图语法。
温馨提示
- 各个平台对 Markdown 个别语法的支持可能会有其局限性(比如 LaTeX 公式),但基础语法都是通用的。
- 不同平台实际渲染出来的效果会有细节上的差异,请根据实际情况稍作调整。
- 调整样式的三大独门技巧:
- 空格
- 缩进
- 换行
工具
- Web 端:Cmd Markdown 和马克飞象
- Mac 端:Mou
- 移动端:简书
- Web 插件:Markdown Here
推荐阅读
- Daring Fireball: Markdown Syntax Documentation
- Markdown - Wikipedia
- Markdown - 维基百科
- Markdown 语法说明
- Markdown Cheatsheet
- 我的 cheat sheet
(本文原载 PerfectForNi's Blog)
网友评论