# 如何学习markdown
>Markdown是一种可以使用普通文本编辑器编写的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。
最近才开始接触markdown,网上看了一下教程,感觉学习起来对非程序员的新手并不算十分友好,主要是有些细节没有提到,所以想写一篇更为简明且完善的教程。
## 一、markdown的优点
* 易读易写,适合快速做出美观的电子版笔记、讲义。
* 不受限编辑器和平台,不存在office一类文件的版本不兼容导致无法打开文件的问题。
* 文字和样式分离,可以直接切换不同主题。
* 专心于内容创作,减少在文字排版上花费的时间。
* 轻松的导出 HTML(静态网页)、PDF。
* 简单,学习成本低!
适合大学生、老师、公司白领、博客博主等经常写文档的人群。
> 所想即所得的操作方式:让你专注在文字本身,其他的任务(如文本样式和排版)通过不打扰、流畅的方式来完成。不打扰的体现:你双手不需要离开键盘、你不需要用鼠标在几百个菜单项找到你想要的操作。
## 二、不适用markdown的情况
* 有严格的排版要求的文档。
比如对文字的字体和行距有硬性要求,markdown是追求快速编辑体验的,要精细调样式还是选word一类的软件吧。
* 涉及到流程图或者复杂表格。
虽然不少编辑器也是能够满足简单的流程图和表格需求的,但这和markdown设计初衷相违背,具体怎么做在本教程就不赘述了,有兴趣的可以深入了解。
## 三、markdown的语法概要
### 标题
**"#"+空格+标题内容**
语法示例:
# 一级标题
## 二级标题
### 三级标题
效果:
# 一级标题
## 二级标题
### 三级标题
### 引用
**">"+空格+引用内容**
语法示例:
> 这是引用的文本
效果:
> 这是引用的文本
### 图片
**"\!\[文字](图片地址)"**
语法示例:
![img example](http://reso2.yiihuu.com/1197819-z.jpg)
效果:
![img example](http://reso2.yiihuu.com/1197819-z.jpg)
### 超链接
**"\[文字](链接地址)"**
语法示例:
[Baidu](http://www.baidu.com)
效果:
[Baidu](http://www.baidu.com)
### 分割线
**用三个"-"形成分割线**
---
### 粗体和斜体
语法示例:
**这是粗体**
效果:
**这是粗体**
语法示例:
__这也是粗体__
效果:
__这也是粗体__
语法示例:
*This is Italic*
效果:
*This is Italic*
### 列表
**无序列表:"\*"+空格+文字 或 "\-"+空格+文字**
语法示例:
* 无序列表1
* 无序列表2
* 无序列表3
- 无序列表4
- 无序列表5
- 无序列表6
效果:
* 无序列表1
* 无序列表2
* 无序列表3
- 无序列表4
- 无序列表5
- 无序列表6
**无序列表:数字+"."+空格+文字**
语法示例:
1. 有序列表1
2. 有序列表2
3. 有序列表3
效果:
1. 有序列表1
2. 有序列表2
3. 有序列表3
__注意: 列表最后要空一行隔开内容,实现样式上的分离__
### 代码块
用\`包围代码块来定义行内代码块`这是一个行内代码块;`
也可以在行首按下tab键(或4个空格)来定义代码块,但**该代码块面前必须空一行**
alert(这也是一个代码块);
### 其它补充
下面这几个问题是很多教程都没怎么提到,但确实是非常重要的。
**换行**
在markdown中,回车键只代表文本换行,实际上解析过后是显示不出来的,要想真正实现换行,需要在行末加两个空格(按两下tab键也行),再按下回车。
**空格和空行的用处**
在前面语法概要的时候可以看出,很多标记(非闭合的标记)后面都需要加上空格才能起作用,空格起的就是表明这些特殊字符是标记语言的作用。
空一行表示内容的分割,一些区块性质的标记,如前面提到的列表区块的分隔,还有代码块的分隔。
**特殊字符转义**
markdown语法本身所涉及的特殊字符,如"#"、"*"等,均可以通过反斜杠"\"来转义,如:
\# => #
**编辑器**
支持markdown的编辑器很多,也有不少网站支持在线编辑markdown:
pc端编辑器:
[Markdownpad](http://markdownpad.com/),
[有道云笔记](http://note.youdao.com/semdl/markdown.html?vendor=unsilent14),
[Cmd Markdown](https://www.zybuluo.com/mdeditor)
在线编辑器:[Dillinger](https://dillinger.io/),
[马克飞象](https://maxiang.io/),
[Mahua](http://mahua.jser.me/),
[小书匠编辑器](http://markdown.xiaoshujiang.com/)
开发者用的编辑器:Vscode、Webstorm、Sublime
一些社交、博客型网站也是支持markdown的,比如简书、豆瓣。
但需要注意的是有些编辑器或平台开发了更高级的markdown功能,但这些功能之间可能不是兼容的。
**所以,当用到一些本教程外的高级功能,在换编辑器或平台时需要注意兼容。当然,导出pdf文件后就不存在兼容问题了。**
教程到这里就结束啦,学习一个新的技术总是令人激动的,赶快动手实践起来吧!
如果对本教程有什么意见或者建议,欢迎在评论提出来,或者修改后直接到[github](https://github.com/yangyaoshan/learning-markdown)上提交给我!