Markdown语法收藏
主要内容
Markdown是什么?
谁创造了它?
为什么要使用它?
怎么使用?
谁在用?
尝试一下
正文
Markdown是什么?
Markdown是一种轻量级标记语言,它以纯文本形式(易读、易写、易更改)编写文档,并最终以HTML格式发布。
Markdown也可以理解为将以MARKDOWN语法编写的语言转换成HTML内容的工具。
谁创造了它?
它由 Aaron Swartz 和John Gruber共同设计,Aaron Swartz就是那位于去年(2013年1月11日)自杀,有着开挂一般人生经历的程序员。维基百科对他的 介绍 是:软件工程师、作家、政治组织者、互联网活动家、维基百科人。
他有着足以让你跪拜的人生经历:
- 14岁参与RSS 1.0规格标准的制订。
- 2004年入读斯坦福,之后退学。
- 2005年创建 Infogami ,之后与 Reddit 合并成为其合伙人。
- 2010年创立求进会(Demand Progress),积极参与禁止网络盗版法案(SOPA)活动,最终该提案被撤回。
- 2011年7月19日,因被控从MIT和JSTOR下载480万篇学术论文并以免费形式上传于网络被捕。
- 2013年1月自杀身亡。
天才都有早逝的归途。
为什么要使用它?
- 它是易读(看起来舒服)、易写(语法简单)、易更改纯文本。处处体现着极简主义的影子。
- 兼容HTML,可以转换为HTML格式发布。
- 跨平台使用。
- 越来越多的网站支持Markdown。
- 更方便清晰地组织你的电子邮件。(Markdown-here, Airmail)
- 摆脱Word(我不是认真的)。
怎么使用?
如果不算扩展,Markdown的语法绝对简单到让你爱不释手。
Markdown语法主要分为如下几大部分:
标题,段落,区块引用,代码区块,强调,列表,分割线,链接,图片,反斜杠 \
,符号’`’。
标题
两种形式:
使用=
和-
标记一级和二级标题。
一级标题
=========
二级标题---------
效果:
一级标题
二级标题
使用#
,可表示1-6级标题。
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
效果:
段落
段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个以上空格加上回车(引用中换行省略回车)。
区块引用
在段落的每行或者只在第一行使用符号>
,还可使用多个嵌套引用,如:
> 区块引用
>> 嵌套引用
效果:
区块引用
嵌套引用
代码区块
代码区块的建立是在每行加上4个空格或者一个制表符(如同写代码一样)。如
普通段落:
void main()
{
printf(“Hello, Markdown.”);
}
代码区块:
void main()
{
printf("Hello, Markdown.");
}
注意:需要和普通段落之间存在空行。
强调
在强调内容两侧分别加上*
或者_
,如:
*斜体*,_斜体_
**粗体**,__粗体__
效果:
斜体,斜体
粗体,粗体
列表
使用·
、+
、或-
标记无序列表,如:
-(+*) 第一项 -(+*) 第二项 - (+*)第三项
注意:标记后面最少有一个_空格_或_制表符_。若不在引用区块中,必须和前方段落之间存在空行。
效果:
- 第一项
- 第二项
- 第三项
有序列表的标记方式是将上述的符号换成数字,并辅以.
,如:
1 . 第一项
2 . 第二项
3 . 第三项
效果:
- 第一项
- 第二项
- 第三项
分割线
分割线最常使用就是三个或以上*
,还可以使用-
和_
。
链接
链接可以由两种形式生成:行内式和参考式。
行内式:
[爸比娃娃的自留地](https:/blog.jiandan.cf “爸比娃娃”)。
效果:
爸比娃娃的自留地 。
参考式:
[爸比娃娃的自留地1][1]
[爸比娃娃的自留地2][2]
[1]:https:/blog.jiandan.cf “爸比娃娃”
[2]:https:/blog.jiandan.cf “爸比娃娃”
效果:
注意:上述的[1]:https:/blog.jiandan.cf "爸比娃娃"
不出现在区块中。
图片
添加图片的形式和链接相似,只需在链接的基础上前方加一个!
。
反斜杠\
相当于反转义作用。使符号成为普通符号。
符号’`'
起到标记作用。如:
`ctrl+a`
效果:
ctrl+a
谁在用?
Markdown的使用者:
- GitHub
- 简书
- Stack Overflow
- Apollo
- Moodle
- 等等
尝试一下
- Chrome下的插件诸如
stackedit
与markdown-here
等非常方便,也不用担心平台受限。 - 在线的dillinger.io评价也不错
- Windowns下的MarkdownPad也用过,不过免费版的体验不是很好。
- Mac下的Mou是国人贡献的,口碑很好。
- Linux下的ReText不错。
当然,最终境界永远都是笔下是语法,心中格式化 :)。
注意:不同的Markdown解释器或工具对相应语法(扩展语法)的解释效果不尽相同,具体可参见工具的使用说明。 虽然有人想出面搞一个所谓的标准化的Markdown,[没想到还惹怒了健在的创始人John Gruber] ( http://blog.codinghorror.com/standard-markdown-is-now-common-markdown/ )。
以上基本是所有traditonal markdown的语法。
其它:
列表的使用(非traditonal markdown):
用|
表示表格纵向边界,表头和表内容用-
隔开,并可用:
进行对齐设置,两边都有:
则表示居中,若不加:
则默认左对齐。
代码库 | 链接 |
---|---|
MarkDown | https://github.com/younghz/Markdown |
MarkDownCopy | https://github.com/younghz/Markdown |
关于其它扩展语法可参见具体工具的使用说明。
目录
文本
- 普通文本
直接输入的文字就是普通文本。需要注意的是要换行的时候不
能直接通过回车来换行,需要使用<br>.也就是html里面的标签. 注意第三行的<br>
前加了反斜杠 \ .目的就是像其他语言那样实现转义,也就是 < 的转义.
单行文本
使用两个Tab符实现单行文本.
多行文本
多行文本和 单行文本异曲同工,只要在 每行行首加两个Tab.
文字高亮
如果你想使一段话中部分文字高亮显示,来起到突出强调的作用,那么可以把它用 ` ` 包围起来.注意
这不是单引号,而是Tab
上方,数字1
左边的按键(注意使用英文
输入法).
斜体和粗体
使用 * 和 ** 表示斜体和粗体.
这是 斜体,这是 粗体.
删除线
使用~~表示删除线.
外链接
使用 [描述](链接地址) 为文字增加外链接。
这是去往 有趣的HTML5和CSS3特效在线演示地址 的链接。
锚点
我们可以使用HTML的锚点标签(#
)来设置锚点:
回到目录
但其实呢,每一个标题都是一个锚点,不需要用标签来指定,比如我们
回到顶部
不过不幸的是,由于对中文支持的不好,所以中文标题貌似是不能视作标签的。
列表
使用 *,+,- 表示无序列表。
- 无序列表项 一
- 无序列表项 二
- 无序列表项 三
二级三级原点
- 编程语言
- 脚本语言
- Python
- 脚本语言
使用数字和点表示有序列表。
- 有序列表项 一
- 有序列表项 二
- 有序列表项 三
数字列表自动排序
也可以在第一行指定1.
,而接下来的几行用星号*
(或者继续用数字1. )就可以了,它会自动显示成2、3、4……
面向对象的七大原则:
- 开闭原则
- 里氏转换原则
- 依赖倒转原则
- 接口隔离原则
- 组合聚合复用原则
- 迪米特法则
- 单一直则原则
多级数字列表
和圆点的列表一样,数字列表也有多级结构:
- 这是一级的数字列表,数字1还是1
- 这是二级的数字列表,阿拉伯数字在显示的时候变成了罗马数字
- 这是三级的数字列表,数字在显示的时候变成了英文字母
- 四级的数字列表显示效果,就不再变化了,依旧是英文字母
- 这是二级的数字列表,阿拉伯数字在显示的时候变成了罗马数字
复选框列表
- C
- C++
- Java
- Qt
- Android
- C#
- .NET
文字引用
使用 > 表示文字引用。
单个引用:
野火烧不尽,春风吹又生。
字符包围:
数据结构
树
二叉树
平衡二叉树
满二叉树
代码块
使用 四个缩进空格 表示代码块。
示例:
这是一个代码块,此行左侧有四个不可见的空格。
加强的代码块
支持四十一种编程语言的语法高亮的显示,行号显示。
非代码示例:
$ sudo npm install
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'''
JavaScript 示例:
/**
* nth element in the fibonacci series.
* @param n >= 0
* @return the nth element, >= 0.
*/
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
document.write(fib(10));
插入图像
使用 ![描述](图片链接地址) 插入图像。
插入图片示例:
给图片添加链接: [![alt](图片地址)](图片链接地址)
显示表格
表头1 | 表头2
------------- | -------------
Content Cell | Content Cell
Content Cell | Content Cell
表头1 | 表头2 |
---|---|
Content Cell | Content Cell |
Content Cell | Content Cell |
名字 | 描述 |
---|---|
Help | Display the help window. |
Close | Closes a window |
表格中也可以使用普通文本的删除线,斜体等效果
名字 | 描述 |
---|---|
Help | |
Close | Closes a window |
表格可以指定对齐方式
左对齐 | 居中 | 右对齐 |
---|---|---|
col 3 is | some wordy text | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
表格中嵌入图片
图片 | 描述 |
---|---|
图片 |
Html 标签
本站支持在 Markdown 语法中嵌套 Html 标签,譬如,你可以用 Html 写一个纵跨两行的表格:
<table>
<tr>
<th rowspan="2">值班人员</th>
<th>星期一</th>
<th>星期二</th>
<th>星期三</th>
</tr>
<tr>
<td>李强</td>
<td>张明</td>
<td>王平</td>
</tr>
</table>
值班人员 | 星期一 | 星期二 | 星期三 |
---|---|---|---|
李强 | 张明 | 王平 |
待办事宜 Todo 列表
使用带有 [ ] 或 [x] (未完成或已完成)项的列表语法撰写一个待办事宜列表,并且支持子列表嵌套以及混用Markdown语法,例如:
- [ ] **Cmd Markdown 开发**
- [ ] 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
- [ ] 支持以 PDF 格式导出文稿
- [x] 新增Todo列表功能
- [x] 改进 LaTex 功能
- [x] 修复 LaTex 公式渲染问题
- [x] 新增 LaTex 公式编号功能
- [ ] **七月旅行准备**
- [ ] 准备邮轮上需要携带的物品
- [ ] 浏览日本免税店的物品
- [x] 购买蓝宝石公主号七月一日的船票
对应显示如下待办事宜 Todo 列表:
- Cmd Markdown 开发
- 改进 Cmd 渲染算法,使用局部渲染技术提高渲染效率
- 支持以 PDF 格式导出文稿
- 新增Todo列表功能
- 改进 LaTex 功能
- 修复 LaTex 公式渲染问题
- 新增 LaTex 公式编号功能
- 七月旅行准备
- 准备邮轮上需要携带的物品
- 浏览日本免税店的物品
- 购买蓝宝石公主号七月一日的船票
添加表情
Github的Markdown语法支持添加emoji表情,输入不同的符号码(两个冒号包围的字符)可以显示出不同的表情.
比如😊
,可以显示😊.
详细查看 emoji .