前言
因为在写博客的过程中,常常会遇到忘记Markdown相关语法的情况,所以就把在网上找到的一些零碎的语法整理成一篇博客,既方便自己以后查阅,也加深自己对Markdown语法的记忆。
关于Markdown
介绍
Markdown是一种轻量级标记语言
,设计的目的是希望大家使用“易于阅读、易于撰写的纯文字格式,并选择性的转换成有效的 XHTML (或是HTML)”。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”,语法简洁明了、学习容易。Markdown文件的文件拓展名为.md
。
为什么选择Markdown
- 它基于纯文本,方便修改和共享
- 几乎可以在所有的
文本编辑器
中编写 - 有众多编程语言的实现,以及应用的相关扩展
- 在GitHub、SourceForge等网站都应用了Markdown或者其变种
(语法稍有不同)
- 很容易转换为HTML文档或其他格式
- 使用者可以更关注写作的内容,而不去太多地关注样式,适合用来编写文档、记录笔记、撰写文章
- Markdown完全
兼容HTML语法
,可以直接在Markdown文档中插入HTML内容
语法
标题
Setext 形式
在文本下方加入=
或者-
。=
或者-
的数量是没有限制的,通常的做法是使其和标题文本的长度相同,这样看起来比较舒服。Setext 形式只支持两种H1和H2两种标题。1
2
3
4
5一级标题 H1
====
二级标题 H2
----atx 形式
在文本前面加上#
即可创建一级标题。同理,创建二级标题、三级标题等只需要增加#
个数即可,Markdown 共支持六级标题。需要注意的是,#左侧不能出现空格
。1
2
3
4
5
6# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
段落与换行
- 段落的
前后
必须是空行(行内什么都没有,或者只有空白符(空格或Tab)) - 相邻两行文本,如果中间没有空行 会显示在一行中(换行符被转换为空格)
- 如果需要在段落内
换行
,可以在前一行的末尾加入至少两个空格
,然后换行写其它的文字,这样能保证换行后的文字和前面文字的样式保持一致
强调
- 斜体
使用符号*
或者_
左右包裹文本。需要注意的是,符号和文本之间不能存在空格
,有的Markdown版本不支持,且*
会被解释成列表。1
2*斜 体*
_斜体_
显示效果
:
- 斜 体
- _斜体_
- 粗体
使用符号**
或者__
左右包裹文本。需要注意的是,符号之间、符号和文本之间不能存在空格
,有的Markdown版本不支持。1
2**粗体**
__粗体__
显示效果
:
- 粗体
- 粗体
- 删除线
使用符号~~
左右包裹文本。需要注意的是,符号之间、符号和文本之间不能存在空格
。1
2~~删除线~~
~~ 删除线~~
显示效果
:
删除线- ~~ 删除线~~
- 嵌套使用
1
2
3***加粗斜体***
**_加粗斜体_**
**~~加粗删除线~~**
显示效果
:
- 加粗斜体
- 加粗斜体
加粗删除线
分割线
可以在一行中使用三个或更多的 *
、-
或_
来添加分隔线,字符之间可以有空格(空白符),但不能有其他字符。但是对于符号-
,必须添加空格,不然会解释为H2标题
1
2
3***
- - -
___
显示效果
引用
- 引用内容
在段落或其他内容前使用>
符号,就可以将这段内容标记为引用
的内容。当一行文本前面加上了>
符号的时候,后面所有相邻行都会被引用,除非隔上一个空行。注意,空行也能使用>
标记。1
2
3
4
5>引用内容
会被引用
也会被引用
不会被引用
显示效果
:
引用内容
会被引用
也会被引用
不会被引用
- 嵌套引用
根据不同的层次加上不同数量的>
即可,注意,为了避免上一层引用对下面的影响,不同层的引用之间需要加入一个空行
。1
2
3>>>内层引用
>>外层引用
>最外层引用
显示效果
:
内层引用
外层引用
最外层引用
代码块
- 行内代码
使用(和
~`在同一个键上)包裹住行内代码,1
这里有一段代码`a + b = 10;`
显示效果
:
这里有一段代码a + b = 10;
- 多行代码
可以在代码钱缩进至少四个空格
或者一个Tab
,代码块会一直持续到没有缩进的那一行;也可以使用六个`来包裹代码块,代码块前后分别有三个,且独占一行。
超链接
行内式
语法为[链接文本](URL '链接Title')
。链接Title
的效果是鼠标悬停在链接上会出现指定的内容,URL
可以是普通链接,也可以是本地链接。1
2
3[Google](http://www.google.com/)
[icon.png](./images/icon.png)参考式
在文档中需要插入链接的地方写[链接文字][链接标记]
,在后面的任意位置添加[链接标记]:URL "链接Title"
。其中,URL
可以使用<>
包括起来,链接Title
可以使用""
、''
、()
包裹(考虑到兼容性,建议使用引号),链接Title
部分也可以换行来写。如果某一个链接在文章中多处使用,那么使用参考式创建链接将非常好,它可以让你对链接进行统一的管理。
- 自动链接
使用<>
包括的URL
或邮箱地址
会被自动转换为超链接1
2
3<http://www.google.com/>
<example@email.com>
图片
图片语法和超链接语法很像
- 行内式
语法为
。语法中图片Alt
的意思是如果图片因为某些原因不能显示,就用定义的图片Alt文字来代替图片。图片Title
表示鼠标悬停与图片上时出现的文字。Alt和Title都不是必须的,可以省略。需要注意的是,!
为英文的感叹号,图片URL
和"图片Title"
之间有一个空格。 - 参考式
在文档要插入图片的地方写![图片Alt][标记]
,在后面(一般是文档最后或者某一个统一的地方)写上[标记]:图片地址 "Title"
- 指定图片大小
Markdown 不支持指定图片的显示大小,不过可以通过直接插入标签来指定相关属性
1
<img src="src" alt="alt" title="title" width="width" height="height" />
锚点
锚点其实就是页内超链接
,也就是链接本文档内部的某些元素,实现当前页面中的跳转。需要注意的是,有一些版本的Markdown只支持在标题后插入锚点,其它地方无效。有的编辑器在编辑Markdown时可能出现锚点无法跳转,但是发布成笔记之后能正常调整的情况。
锚点的语法:1
2
3## 目录{#index}
跳转到[目录](#index)
列表
无序列表
无序列表的语法是:符号 文本
。其中符号可以是*
,-
或者+
,符号和文本之间,需要加上一个空格。1
2
3* list1
+ list2
- list3有序列表
有序列表的语法是:数字. 文本
。其中数字
可以为任意数字,且使用的数组不会对解析之后的列表序号造成影响。1
2
31. list1
1. list2
1. list3显示效果
- list1
- list2
- list3
嵌套列表
无序列表和有序列表可以随意相互嵌套,子列表需要在前面加上缩进
,或者至少一个空格
1
2
3
4* list1
1. list
* list2
* list代办列表
1
2
3
4
5
6- [ ] Eat
- [x] Code
- [x] HTML
- [x] CSS
- [x] JavaScript
- [ ] Sleep
- Eat
- Code
- HTML
- CSS
- JavaScript
- Sleep
- 其他
如果要在列表项目内放进引用,那>
就需要缩进
表格
使用|
来分隔不同的单元格,使用-
来分隔表头和其他行,-
的数量没有限制但至少为一个。1
2
3
4name | age
---- | ---
LearnShare | 12
Mike | 32
为了美观,可以使用空格对齐不同行的单元格,并在左右两侧都使用 | 来标记单元格边界。
在表头下方的分隔线标记中加入:
,即可标记下方单元格内容的对齐方式(_
没有数量限制,至少为一个)
:---
代表左对齐:--:
代表居中对齐---:
代表右对齐
1 | | left | center | right | |
left | center | right |
---|---|---|
aaaa | bbbbbb | ccccc |
a | b | c |
字符转义
反斜线\
用于显示在 Markdown 语法中有特殊作用的字符。1
这是用来 \*演示\* 的 \_文本\_
这是用来 *演示* 的 _文本_
后记
不同平台对Markdown语法的解释可能稍有不同,使用的时候可能需要根据实际情况进行调整.