Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
它由Aaron Swartz和John Gruber共同设计,Aaron Swartz就是那位于前几年(2013年1月11日)自杀,有着开挂一般人生经历的程序员。维基百科对他的介绍是:计算机程序员、企业家、作家、政治组织者和互联网黑客主义者;而百度百科则比较简单和含蓄,对他的介绍直接是:年少成名的计算机天才。老实说,他有着足以让你跪拜的人生经历。
- 它基于纯文本,方便修改和共享
- 几乎可以在所有的文本编辑器中编写
- 跨平台使用
- 越来越多的网站支持Markdown
- 很容易转换为 HTML 文档或其他格式
- 摆脱Word(他的排版和阅读,要比Word体验好太多了)
- 适合用来编写文档、记录笔记、撰写文章
- ……
Markdown的标题,主要使用#,可表示1-6级标题,如下:
- # 一级标题
- ## 二级标题
- ### 三级标题
- #### 四级标题
- ##### 五级标题
- ###### 六级标题
-
段落的前后必须是空行,空行指的是行内什么都没有,或者只有空白符(空格或制表符)
-
如果需要在段落内换行,可以在前一行的末尾加入至少两个空格,然后换行继续写其它的内容
Markdown使用邮件风格的>作为块引用。如果你熟悉邮件中的块引用,你也就知道如何在Markdown里创建一个块引用。在每一行前放一个 > 最好
但是,Markdown允许你懒一些,尽在每个段落的开头放一个 >,如下这样的:
> 这是引用测试
这就是应用测试
这真的是引用测试
还可以嵌套引用,即在前一个引用的基础上再加一个 > 即可,如下:
> 这是引用测试
>> 这是嵌套引用测试
>>> 这是嵌套引用测试的嵌套
无序列表是使用.(点)、+(加号)、或-(减号)的符号来标记,需要注意的是标记后面最少有一个空格或制表符。若不在引用区块中,必须和前方段落之间存在空行,例如:
- 这是无序列表
- 这是无序列表
- 这是无序列表
有序列表的标记方式是将上述的无序列表的符号换成数字,并辅以.(点)来标记,同时,提醒一下:数字的序列并不会影响生成的列表序列,无论你的序列是什么排的,结果仍然推荐按照自然顺序(1,2,3...)来编写,例如:
1. 这是有序列表
2. 这是有序列表
4. 这是有序列表
可以多层嵌套,标识符号不变,同上,需要说明的是无序列表和有序列表可以随意相互嵌套,同时,子列表前必须有相对于父列表两个以上空格的缩进,例如:
1. 有序列表
- 无序列表
2. 有序列表
* 无序列表
代码块可以使用三个 `( ` 是Tab 键上边、数字1键左侧的那个按键)符号作为标识,即```,开头和结束都要,并且独占一行,例如:
```
$str = 'Hello World';
echo $str;
```
也可以通过 `来插入行内代码,建议使用一个`就行,例如:
`echo 'Hello World'`
可以在一行中使用三个或更多的 *(星)、-(减号) 或 _(下划线) 来添加一条分隔线,例如:
*************************************************
# 上面是一条分割线
超链接可以由两种形式生成:行内式和参考式
行内式的写法如下:
[链接文字描述](实际超链接URL)
来个行内式的例子吧,如下:
[博客地址](http://blog.y0701.com)
真实效果为:
参考式的写法如下:
[链接文字描述][实际超链接锚点名]
继续来个参考式的例子吧,如下:
[博客地址][blog_url]
[blog_url]:http://blog.y0701.com
真实效果为:
使用一对尖括号 <> 包括的 URL 或邮箱地址,即可被自动转换为超链接,例如:
<http://blog.y0701.com>
上面的效果为:
插入图片的语法和插入超链接的语法基本一致,只是在最前面多一个!(英文感叹号)。插入图片的方式也分为行内式和参考式两种
行内式的用法和效果如下:
![img](https://avatars3.githubusercontent.com/u/25812349?s=400&v=4)
行内式的用法和效果如下:
![img][img_url]
[img_url]:https://avatars3.githubusercontent.com/u/25812349?s=400&v=4
- 使用一对(一颗星) * * 或一对(一个下划线) _ _ 包括的文本来标识斜体,例如:
这句话的 *斜体* 字都是 _斜体_ 的
效果为: 这句话的 斜体 字都是 斜体 的
- 使用一对(两颗星) ** ** 或一对(两个下划线) __ __ 包括的文本来标识粗体,例如:
这句话的 **粗体** 字都是 __粗体__ 的
效果为: 这句话的 粗体 字都是 粗体 的
- 使用一对(三颗星) *** *** 或一对(三个下划线) ___ ___ 包括的文本来标识斜体且加粗,例如:
这句话的 ***粗斜体*** 字都是 ___粗斜体___ 的
效果为: 这句话的 粗体 字都是 粗体 的
- 使用一对(两个波浪线) ~~ ~~ 包括的文本来标识删除,例如:
这句话的 ~~删除~~ 字都是 ~~删除~~ 的
效果为: 这句话的 删除 字都是 删除 的
-
需要说明的是,用来包括文本的 * 或 _ 内侧不能有空白,否则 * 和 _ 将不会被正确的转换,具体的场景和效果,有兴趣的大家可以自己尝试
-
最后再说一遍:*、**、***、_、__、__\和~~都必须成对使用
反斜线(\)用于插入在Markdown语法中具有转义作用的字符,例如:
这句话的 \*斜体\* 字不会是 \_斜体\_
其效果为:这句话的 *斜体* 字不会是 _斜体_
我们知道Markdown不支持指定图片的显示大小,只会按照百分百显示,那么这个时候,实在有必要的话,可以通过直接插入<img/>标签来指定相关属性,用法和效果如下:
<img src="https://avatars3.githubusercontent.com/u/25812349?s=400&v=4" alt="这是头像" title="这是头像" width="50%" height="50%" />
其他HTML标签在Markdown里的用法和<img/>类似,就像在HTML在那样一模一样的用法即可
Markdown还有支持很多扩展的语法,这里就不说了,关于其它扩展语法可参见具体工具以及文档的相关使用说明即可
这仅是一些Markdown的基础语法,如有说的不对的地方,欢迎大家指正,我会及时改正,谢谢。