Markdown概述及用法总结
“Markdown 格式化语法设计的目的就是为了易读,而且 Markdown 应该可以直接使用纯文本进行发布,无需标签或者是一些格式化命令。”
— Markdown 创始人John Gruber
为什么要使用Markdown?
从可读性来说,HTML 标签让 HTML 文档包含态度内容无关的噪音,如果你不熟悉 HTML 语法的话,很难直接阅读。 Markdown 不仅容易读写,对于不熟悉 HTML 的人也能轻松了解所表达的内容。
从可写性来说,Markdown降低了使用HTML标签的错误率,例如标签不成对,书写麻烦等。
总的来说,对于 Web 开发者和设计者来说,Markdown其清晰的格式让一些非技术人员倍感亲切,因为无需超文本,Markdown 更直观更容易被记住。
一、概述 |
Markdown 是一种轻量级的标记语言, 它用简洁的语法代替排版,目的是允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。
Markdown 视可读性为最高准则,所以Markdown文件应该以纯文本形式原样发布, 不应该包含标记标签和格式化指令。语法灵感最大的来源是纯文本 email 的格式。基于以上背景, Markdown 完全由标点符号组成。
Markdown 的呈现是解析成 HTML以后的结果, 而其支持的 HTML 标记也只是一部分, Markdown 可算是 HTML 的一个简化了的子集。而 Markdown 本身和 CSS 没有可比性,Markdown 文档解析后的外观如何,需要用 CSS 定义,Markdown 解析后事实上就只是纯的 HTML 结构,Markdown和Html标签可以混用。
优点:
- 易于阅读,直观
- 易于创作,专注你的文字内容而不是排版样式。
- 轻松的导出 HTML、PDF 和本身的 .md 文件。
- 纯文本内容,兼容所有的文本编辑器与字处理软件。
二、基本用法 |
1. 标题
在 Markdown 中,如果一段文字被定义为标题,只要在这段文字前加 #
号即可,一级标题加#
,二级标题加##
。
以此类推,总共六级标题,建议在井号后加一个空格,这是最标准的 Markdown 语法。
例子:
# 一级标题
## 二级标题
### 三级标题
效果图:
一级标题
二级标题
三级标题
2. 列表
(1) 无序列表
在文字前加上-
或*
或+
再加上空格即可变为无序列表,如果要控制列表的层级,则需要在符号-
或*
或+
前使用空格。
例子:
- 无序列表1
* 无序列表2
+ 无序列表2.1
效果图:
- 无序列表1
- 无序列表2
- 无序列表2.1
(2) 有序列表
在文字前加数字加英文句号再加空格即可变为有序列表,如果要控制列表的层级,则需要在数字前使用空格。
例子:
4. 有序列表1
4. 有序列表2
5. 有序列表2.1
4. 有序列表3
效果图:
- 有序列表1
- 有序列表2
- 有序列表2.1
- 有序列表3
注意:仔细观察有序列表的例子和效果图的数字序号,发现有序列表数字标记不是按照你写的数字进行显示的,而是根据当前有序列表标记所在位置显示的,不过为了可读性考虑,还是建议按序号来。
3. 引用
只需要在文本前加入 >
这种尖括号(大于号)加空格即可引用一小段别处的句子,>>
表示引用里面再套一层引用,依次类推。
例子:
> 这是第一层引用的内容
>> 这是第二层引用的内容
>>> 这是第三层引用额内容
效果图:
这一段是引用的内容
这是第二段引用的内容
这是第三层引用的内容
4. 粗体与斜体
使用*
或者_
表示斜体。
使用**
或者__
表示粗体。
使用***
或者___
表示粗斜体。
例子:
*这句话是用星号写的斜体。*
**这句话是用星号写的粗体。**
___这句话是用下划线写的粗斜体。___
效果图:
这句话是用星号写的斜体。
这句话是用星号写的粗体。
这句话是用下划线写的粗斜体。
注意:前后的 * 或 _ 与要加粗或倾斜的字体之间不能有空格。
5. 分隔线
使用三个及其以上连续的-
或者 _
或者 *
表示水平分割线。
例子:
---
+++
效果图:
6. 代码块
(1) 利用缩进(Tab键或者4个空格)
例子:
- 列表项
- 列表项
[TAB][TAB]列表项下的Tab
效果图:
- 列表项
列表项
列表项下的Tab
注意:在列表项状态下,需要输入两次TAB键(制表符)才能以代码格式插入。利用缩进写代码块是相对于当前格式状态下的。
(2) 利用 ` 符号(一般在ESC键下方)包裹代码
插入行内代码,即插入一个单词或者一句代码的情况,使用`code`这样的形式插入。
插入多行代码,可以使用` ` `加编程语言来高亮显示。
例子:
插入行内代码`printf()`方法。
```java
public class People{
private int age;
private String name;
private String sex;
private void Show(){
System.out.println("我是高亮代码块");
}
}
```
效果图:
插入行内代码printf()
方法。
public class People{
private int age;
private String name;
private String sex;
private void Show(){
System.out.println("我是高亮代码块");
}
}
7. 删除线
在需要删除的文字前后各添加~~
,或者使用<del>标签(<del>标签为HTML标签)
例子:
~~这是第一段需要删掉的话。~~
<del>这是第二段需要删掉的话。</del>
效果图:
这是第一段需要删掉的话。
这是第二段需要删掉的话。
8. 超链接
行内式超链接: [超链接名字](超链接地址 “鼠标悬停时出现的提示” )
参考式超链接:
[超链接名字][数字]
[数字]:超链接地址 “鼠标悬停时出现的提示”
例子:
这是行内式超链接:[百度](http://www.baidu.com "百度一下,你就知道")
这是参考室超链接:[新浪][1]
[1]:http://www.sina.com.cn/ "百度一下,你就知道"
效果图:
这是行内式超链接:百度
这是参考式超链接:新浪
注意:参考式链接和行内链接的效果是一样的,各有利弊。行内连接清晰易懂,可以清楚的知道链接的地址,但是不便于多次利用。参考式链接可以重复使用,但不能即刻知道链接的地址。
9. 图片
使用 ![Alt text](/path/to/img.jpg “Optional title”)导入图片
Alt text: 图片无法显示时显示的文字
/path/to/img.jpg:图片所在路径
Optional title:显示效果为在你将鼠标放到图片上后,会显示一个小框提示,提示的内容就是 Optional title 里的内容
例子:
![美丽星空](http://okvqykqol.bkt.clouddn.com/Markdown-picture1.jpeg "美丽星空")
效果图:
注意:图片和超链接一样,拥有行内式和参考式两种,详情请参考超链接。
三、注意事项及小技巧 |
1. 添加空行
添加空行可以结束先前的格式状态。个人建议在改变格式时,均添加一个空行。
2. 首行缩进
把输入法置为全角状态,然后再输入两个空格就可以了。
这是默认的效果
这是加了状态的效果
3. 字体格式
markdown是兼容HTML的,所以可以使用<font>标签来设置字体大小
例子:
<font color="red" size=6 face=黑体>我是目标字体
效果图:
我是目标字体
4. 转义字符
比如我们想输出反引号,但是markdown把反引号作为标记,有编程语言的基础的同学知道,转义符的存在。
反斜线(\)用于插入在 Markdown 语法中有特殊作用的字符。
注意:再利用Markdown编写文档时,要注意<和& 的转义,如果你只是想要显示这些字符的原型,你必须要使用实体的形式,像是<
和 &
。
5. 如何写两段分开的代码块
在两端代码块之间写
(不换行空格)或 
(全角空格)或 
(半角空格)。
例子:
第一段代码。
第二段代码。
效果图:
第一段代码。
第二段代码。