Markdown语法和基本使用

895 阅读6分钟

关于Markdown

Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。

谁创造了Markdown

它由Aaron Swartz和John Gruber共同设计,Aaron Swartz就是那位于前几年(2013年1月11日)自杀,有着开挂一般人生经历的程序员。维基百科对他的介绍是:计算机程序员、企业家、作家、政治组织者和互联网黑客主义者;而百度百科则比较简单和含蓄,对他的介绍直接是:年少成名的计算机天才。老实说,他有着足以让你跪拜的人生经历。

为什么要使用Markdown

  • 它基于纯文本,方便修改和共享
  • 几乎可以在所有的文本编辑器中编写
  • 跨平台使用
  • 越来越多的网站支持Markdown
  • 很容易转换为 HTML 文档或其他格式
  • 摆脱Word(他的排版和阅读,要比Word体验好太多了)
  • 适合用来编写文档、记录笔记、撰写文章
  • ……

Markdown基础语法

标题

Markdown的标题,主要使用#,可表示1-6级标题,如下:

  • # 一级标题
  • ## 二级标题
  • ### 三级标题
  • #### 四级标题
  • ##### 五级标题
  • ###### 六级标题

段落与换行

  1. 段落的前后必须是空行,空行指的是行内什么都没有,或者只有空白符(空格或制表符)
  2. 如果需要在段落内换行,可以在前一行的末尾加入至少两个空格,然后换行继续写其它的内容

引用

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>

上面的效果为:

blog.y0701.com

图片

插入图片的语法和插入超链接的语法基本一致,只是在最前面多一个!(英文感叹号)。插入图片的方式也分为行内式和参考式两种

行内式

行内式的用法和效果如下:

![img](https://avatars3.githubusercontent.com/u/25812349?s=400&v=4)

me

参考式

行内式的用法和效果如下:

![img][img_url]  
[img_url]:https://avatars3.githubusercontent.com/u/25812349?s=400&v=4

me

强调

  1. 使用一对(一颗星)
    或一对(一个下划线)
    包括的文本来标识斜体,例如:
这句话的 *斜体* 字都是 _斜体_

效果为: 这句话的

斜体

字都是

斜体

  1. 使用一对(两颗星) 或一对(两个下划线) 包括的文本来标识粗体,例如:
这句话的 **粗体** 字都是 __粗体__

效果为: 这句话的 粗体 字都是 粗体

  1. 使用一对(三颗星)
    或一对(三个下划线)
    包括的文本来标识斜体且加粗,例如:
这句话的 ***粗斜体*** 字都是 ___粗斜体___ 的

效果为: 这句话的

粗体

字都是

粗体

  1. 使用一对(两个波浪线)
    包括的文本来标识删除,例如:
这句话的 ~~删除~~ 字都是 ~~删除~~ 的

效果为: 这句话的

删除

字都是

删除

  1. 需要说明的是,用来包括文本的
    内侧不能有空白,否则
    将不会被正确的转换,具体的场景和效果,有兴趣的大家可以自己尝试
  2. 最后再说一遍:*、**、***、_、__、__和~~都必须成对使用

字符转义

反斜线()用于插入在Markdown语法中具有转义作用的字符,例如:

这句话的 \*斜体\* 字不会是 \_斜体\_

其效果为:这句话的 *斜体* 字不会是 _斜体_

Markdown完美支持Html的写法

我们知道Markdown不支持指定图片的显示大小,只会按照百分百显示,那么这个时候,实在有必要的话,可以通过直接插入<img/>标签来指定相关属性,用法和效果如下:

<img src="https://avatars3.githubusercontent.com/u/25812349?s=400&v=4" alt="这是头像" title="这是头像"width="50%" height="50%" />

<img src="avatars3.githubuserco...;v=4" alt="这是头像" title="这是头像" width="180" height="180" />

其他HTML标签在Markdown里的用法和<img/>类似,就像在HTML在那样一模一样的用法即可

Markdown的扩展用法

Markdown还有支持很多扩展的语法,这里就不说了,关于其它扩展语法可参见具体工具以及文档的相关使用说明即可

结束语

这仅是一些Markdown的基础语法,如有说的不对的地方,欢迎大家指正,我会及时改正,谢谢。