Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。
在线Markdown编辑/阅读器
GitHub的markdown语法在标准的markdown语法基础上做了扩充,称之为GitHub Flavored Markdown
。简称GFM
,GFM在GitHub上有广泛应用,除了README文件外,issues和wiki均支持markdown语法。
##目录
- 横线
- 标题
- 文本
- 普通文本
- 文本换行
- 单行文本
- 多行文本
- 文字高亮
- 代码高亮
- 斜体/粗体/删除线
- 图片
- 来源于网络的图片
- GitHub仓库中的图片
- 链接
- 文字超链接
- 链接外部URL
- 链接本仓库里的URL
- 锚点
- 图片链接
- 文字超链接
- 列表
- 无序列表
- 有序列表
- 复选框列表
- 块引用
- 代码高亮
- 表格
- 表情
默认的一级、二级标题下面自带横线,
# 一级标题
# 二级标题
还可使用 ***
、 ---
、 ___
来显示横线效果。
***
---
___
最终效果如下:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
效果如下:
这是一段普通的文本。
在行尾加入回车是无法实现换行的。
在一行结尾加入 2个空格 ,有较小行距(本行与下一行的间距)。
在一行结尾加入连续 2个回车 ,有较大行距(本行与下一行的间距)。
这是两个回车后的一行。
在一行开头加入1个Tab或者4个空格,效果如下。 Hello,大家好!
-
语法1
在连续几行的文本开头加入1个Tab或者4个空格。你好, 欢迎, 我换行了。
-
语法2
使用一对反引号包围:``` 你好, 欢迎, 我换行了。 ```
效果:
你好, 欢迎, 我换行了。
文字高亮功能能使行内部分文字高亮,使用一对反引号(英文输入状态下,tab
键上面,数字键 1
左侧那个键)。
语法:
`linux` `网络编程` `socket` `epoll`
效果:linux
网络编程
socket
epoll
这也适合做文章的tag。
该语法也可以实现代码高亮,在三个反引号后面加上编程语言的名字,另起一行开始写代码,最后一行再加上三个反引号。
```javascript
let func = (() => {
let count = 0;
return () => {
return count++;
}
})();
console.log(func());
```
效果:
let func = (() => {
let count = 0;
return () => {
return count++;
}
})();
console.log(func());
更多示例:
<div class="message-notice" :style="{top: top + 'px'}" v-if='show' transition="expand">
<div class="message-notice-content">
<div class="message-custom-content message-{{type}}">
<i class="message-icon {{iconName}}"></i>
<span>{{msg}}</span>
</div>
</div>
</div>
public static void main(String[]args){} //Java
int main(int argc, char *argv[]) //C
echo "hello GitHub" #Bash
string &operator+(const string& A,const string& B) //cpp
语法 | 效果 |
---|---|
*斜体1* |
斜体1 |
_斜体2_ |
斜体2 |
**粗体1** |
粗体1 |
__粗体2__ |
粗体2 |
这是一个 ~~删除线~~ |
这是一个 |
***斜粗体1*** |
斜粗体1 |
___斜粗体2___ |
斜粗体2 |
***~~斜粗体删除线1~~*** |
|
~~***斜粗体删除线2***~~ |
斜体、粗体、删除线可混合使用
基本格式:

alt和title即对应HTML中的alt和title属性(都可省略):
- alt表示图片显示失败时的替换文本。
- title表示鼠标悬停在图片时的显示文本(注意这里要加引号)。
URL即图片的url地址,如果引用本仓库中的图片,直接使用相对路径就可了,如果引用其他github仓库中的图片要注意格式,即:仓库地址/raw/分支名/图片路径
,如:
https://github.com/guodongxiaren/ImageCache/raw/master/Logo/foryou.gif
# | 语法 | 效果 |
---|---|---|
1 |  |
|
2 | ![][foryou] |
![][foryou] |
注意例2的写法使用了URL标识符的形式,在链接一节有介绍。
在文末有foryou的定义:
[foryou]:https://github.com/guodongxiaren/ImageCache/raw/master/Logo/foryou.gif
# | 语法 | 效果 |
---|---|---|
1 | [我的博客](https://hekui.github.io/blog/ "悬停显示") |
我的博客 |
2 | [知乎][zhihu] |
知乎 |
2 | [zhihu]:https://www.zhihu.com/ "知乎,欢迎关注" |
语法2由两部分组成:
- 第一部分使用两个中括号,[ ]里的标识符(本例中zhihu),可以是数字,字母等的组合,标识符上下对应就行了(姑且称之为URL标识符)
- 第二部分标记实际URL。
使用URL标识符能达到复用的目的,一般把全文所有的URL标识符统一放在文章末尾,这样看起来比较干净。
语法 | 效果 |
---|---|
`[emoji] | (./emoji.md)` |
给图片加链接的本质是混合图片显示语法和普通的链接语法。普通的链接中[ ]内部是链接要显示的文本,而图片链接[ ]里面则是要显示的图片。
直接混合两种语法当然可以,但是十分啰嗦,为此我们可以使用URL标识符的形式。
# | 语法 | 效果 |
---|---|---|
1 | [![weibo-logo]](http://weibo.com/linpiaochen) |
![weibo-logo] |
2 | [][zhihu] |
![]() |
3 | [![csdn-logo]][csdn] |
[![csdn-logo]][csdn] |
因为图片本身和链接本身都支持URL标识符的形式,所以图片链接也可以很简洁(见例3)。
注意,此时鼠标悬停时显示的文字是图片的title,而非链接本身的title了。
本文URL标识符都放置于文末
其实呢,每一个标题都是一个锚点,和HTML的锚点(#
)类似,比如我们
语法 | 效果 |
---|---|
[回到顶部](#readme) |
回到顶部 |
不过要注意,标题中的英文字母都被转化为小写字母了。
以前GitHub对中文支持的不好,所以中文标题不能正确识别为锚点,但是现在已经没问题啦!
用 *
或者 -
加一个空格开始的行。
* 昵称
- 别名
* 英文名
效果:
- 昵称
- 别名
- 英文名
* 前端
* js
* vue
效果:
- 前端
- js
- vue
- js
就是在数字后面加一个点,再加一个空格。不过看起来可能不够明显。
面向对象的三个基本特征:
- 封装
- 继承
- 多态
也可以在第一行指定1.
,而接下来的几行用星号*
(或者继续用数字1. )就可以了,它会自动显示成2、3、4……。
面向对象的七大原则:
- 开闭原则
- 里氏转换原则
- 依赖倒转原则
- 接口隔离原则
- 组合/聚合复用原则
- “迪米特”法则
- 单一职责原则
和无序列表一样,有序列表也有多级结构:
- 这是一级的有序列表,数字1还是1
- 这是二级的有序列表,阿拉伯数字在显示的时候变成了罗马数字
- 这是三级的有序列表,数字在显示的时候变成了英文字母
- 四级的有序列表显示效果,就不再变化了,依旧是英文字母
- 这是二级的有序列表,阿拉伯数字在显示的时候变成了罗马数字
- [x] 选中
- [ ] 未选中
- 选中
- 未选中
您可以使用这个功能来标注某个项目各项任务的完成情况。
Tip:
在GitHub的issue中使用该语法是可以实时点击复选框来勾选或解除勾选的,而无需修改issue原文。
使用 >
加一个空格。
> **“端”(endian)的起源**
> 以下是Jonathan Swift在1726年关于大小端之争历史的描述:
> “……下面我要告诉你的是,Lilliput和Blefuscu这两大强国在过去36个月里一直在苦战。战争开始是由于以下的原因:我们大家都认为,吃鸡蛋前,原始的方法是打破鸡蛋较大的一端,可是当今的皇帝的祖父小时候吃鸡蛋,一次按古法打鸡蛋时碰巧将一个手指弄破了,因此他的父亲,当时的皇帝,就下了一道敕令,命令全体臣民吃鸡蛋时打破较小的一端,违令者重罚。”
效果:
“端”(endian)的起源
以下是Jonathan Swift在1726年关于大小端之争历史的描述:
“……下面我要告诉你的是,Lilliput和Blefuscu这两大强国在过去36个月里一直在苦战。战争开始是由于以下的原因:我们大家都认为,吃鸡蛋前,原始的方法是打破鸡蛋较大的一端,可是当今的皇帝的祖父小时候吃鸡蛋,一次按古法打鸡蛋时碰巧将一个手指弄破了,因此他的父亲,当时的皇帝,就下了一道敕令,命令全体臣民吃鸡蛋时打破较小的一端,违令者重罚。”
数据结构
树
二叉树
平衡二叉树
满二叉树
表头1 | 表头2 |
---|---|
表格单元 | 表格单元 |
表格单元 | 表格单元 |
表头1 | 表头2 |
---|---|
表格单元 | 表格单元 |
表格单元 | 表格单元 |
###对齐 表格可以指定对齐方式
左对齐 | 居中 | 右对齐 |
---|---|---|
col 3 is | some wordy text | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
###混合其他语法
表格单元中的内容可以和其他大多数GFM语法配合使用,如:
####使用普通文本的删除线,斜体等效果
名字 | 描述 |
---|---|
Help | |
Close | Closes a window |
####表格中嵌入图片(链接) | |
其实前面介绍图片显示、图片链接的时候为了清晰就是放在在表格中显示的。 |
图片 | 描述 |
---|---|
![baidu][baidu-logo] | 百度 |
Github的Markdown语法支持添加emoji表情,输入不同的符号码(两个冒号包围的字符)可以显示出不同的表情。
比如:blush:
,可以显示:blush:。
具体每一个表情的符号码,可以查询GitHub的官方网页http://www.emoji-cheat-sheet.com。
但是这个网页每次都打开奇慢。。所以我整理到了本repo中,大家可以直接在此查看emoji。