#虹吸墨 Markdown 语法说明
[toc]

##关于 Markdown 
Markdown 是一种流行的排版「标记语言」，为了让文本排版更加“易读易写”而生。
 它能让文本写作更加关注内容，而不是各种排版样式。

使用 Markdown  能用简单的定义文本中的“标题”、“段落”、“引用”、“列表”等排版元素，而这些排版元素的具体样式不用去管，他们会由现有的 CSS 样式表生成漂亮又规范的版式。

例如下面一段 Markdown 文本：
 
```
###标题3
这是一段文本
>这是一段文本引用
1. 这是列表
1. 这是列表
```

经过样式化后可以生成这样的板式：

---

###标题3示例

这是一段文本
>这是一段文本引用

1. 这是列表
1. 这是列表
 1. 这是子列表

---
Markdown 经过样式化后生成的是 HTML 文档，不仅仅能在虹吸墨中查看，还可在浏览器中查看，而且还可以通过工具（例如 Chrome 浏览器的打印功能）轻松的转换成 PDF 或者 DOC 文档。


Markdown 的编写、保存、传输都是使用普通的文本文件，所以有极强的适用性，而且无论 Windows 、OS X、Linux、Android、iOS 还是 Web 上都有许多 Markdown 编辑器和相关工具，不用担心在不同平台上无法使用的问题。


## Markdown 扩展功能
虹吸墨除了支持 [标准的 Markdown 语法](#标准 Markdown 语法) 和主流编辑器都支持的 [GitHub Flavored Markdown 增强语法](#GitHub Flavored Markdown) 还支持一些流行 Markdown 编辑器支持的扩展功能和虹吸墨自有的扩展功能。

###任务列表

在普通列表后加上`[ ]`、`[]`、`[x]` 来表示标记框：

```
- [ ] 未完成
  - [x] 已完成
  - [x] 已打钩
  - [ ] 未打钩
- [ ] 未打钩
```
- [] 未完成
  - [x] 已完成
  - [x] 已打钩
  - [ ] 未打钩
- [ ] 未打钩

另外还 [_x]支持 行内的标记框：	[_\] [_x\]（这是虹吸墨自有语法）

[_] [_] [_] [_x] [_x] [_x]


###Font Awesome 图标

虹吸墨支持使用在文章中使用 [Font Awesome](http://fortawesome.github.io/Font-Awesome/icons/)([中文](http://www.thinkcmf.com/font/icons)) 图标
<i class="fa fa-folder"></i>
可以写 HTML 代码：

`<i class="fa fa-folder"></i>` <i class="fa fa-folder"></i>

也可以直接在方括号里写图标名（这是虹吸墨自有语法）：

[fa\-plug]   [fa-plug] 

还有一系列参数可以使用：

参数|作用
:---|---:
fa-lg| 1.33 倍大小
fa-2x|2 倍大小（最大可设为 5）
fa-fw |固定图标宽度
fa-border|边框
pull-left|左对齐
pull-right|右对齐
fa-spin|旋转动画
fa-rotate-90|旋转90度（还可为 180 、270）
fa-flip-horizontal|水平翻转
 fa-flip-vertical|垂直翻转

[fa\-plug fa-3x] [fa\-plug fa-2x] [fa\-plug fa-lg]   [fa-plug fa-3x] [fa-plug fa-2x] [fa-plug fa-lg] 

[fa\-plug fa-2x  fa-rotate-90]  [fa-plug fa-2x fa-rotate-90] 

[fa\-plug fa-2x  fa-rotate-90]  [fa-plug fa-2x fa-spin ] 

### LaTeX 数学公式

`$` 或`\\(` 和 `\\)`包围的文本表示行内公式： 

比如 `$E=mc^2$` : $E=mc^2$ 。

`$$` 或  `\\[` 和 `\\]` 包围的文本表示整行公式：

```
$$\sum_{i=1}^n a_i=0$$

\\[\sum^{j-1}_{k=0}{\widehat{\gamma}_{kj} z_k} \\]
```

$$\sum_{i=1}^n a_i=0$$

\\[\sum^{j-1}_{k=0}{\widehat{\gamma}_{kj} z_k} \\]


### 自动文章目录
使用 [toc\] 标记能自动生成生成一个文章目录，就想本文[开头](#虹吸墨 Markdown 语法说明)那样

### 收展器

这是虹吸墨自有的语法，
使用下面这种标记包围的文本会被收展器收展

```

[+]---
...
[]---
```

使用 `[+]` 是默认收起的收展器，使用 `[-]` 是默认展开收展器，收展器可以嵌套。

收展器标示里的 `---` 分割线长度可以随意，只要大于3个减号，通常嵌套时用不同分割线长度区别不同的首尾，当然这只是对可读性而言，对机器它们都是一样的。

要注意收展器的上一行必须是空行。

```

[+]---------- [fa-windows ] Windows 
不同版本

[+]--- Windows 8
配置内容XXXXXX
[]---

[-]--- Windows 10
配置内容OOOO
[]---
[]----------

[+]-----------  [fa-apple] OS X
配置内容xxxx
[]----------
```

[+]---------- [fa-windows ] Windows 
不同版本

[+]--- Windows 8
配置内容XXXXXX
[]---

[-]--- Windows 10
配置内容OOOO
[]---
[]----------

 [+]-----------  [fa-apple] OS X
配置内容xxxx
[]----------


### 按键框
使用`<kbd>...</kbd>` 表示按键，这个语法在个别 Markdown 编辑器中支持如 [stackedit](stackedit.io)。

`<kbd>Ctrl + <kbd>3</kbd></kbd>`

<kbd>Ctrl + <kbd>3</kbd></kbd>

## 标准 Markdown 语法
###段落

Markdown  中的文本由段落构成，各个段落间用空行间隔，多个连续空行会被缩减成一个空行，例如：

```
  这是段落一



  这是段落二
```
︾

> 这是段落一
> 
> 
> 这是段落二



####空白缩减
段落内的空白符合会缩减

- 多个连续空格也会缩减为一个空格
- 换行符会缩减成一个空格


```
连续                                空格
```
︾


> 连续                                空格

```
段落内的
换行
```
︾
> 段落内的
> 换行


####段落内换行
如果要使用段落内换行，可以在行末尾添加 2 个空格

```
段落内的  
换行
```
︾
> 段落内的  
> 换行


####强制使用空格与换行
Markdown 不建议使用手工输入空格和换行来进行排版，文章内容的间距由 CSS 样式表决定能更加统一和便于调整。如果遇到一定要手动设置的情况可以使用全角空格和 HTML 的代码，他们能无视空白缩减


功能|代码
|---|----|
空格|`&nbsp;`
全角空格|`　`
换行|`<br>`


###标题
标题使用行首的 `#` 符号来标记，有多少 `#` 符号代表几级标题，最多六级。

 ```
###三级标题示例
####四级标题示例
 ```
︾
> ###三级标题示例
> ####四级标题示例

1

还有另一种定义标题的方法，使用 `===`、`---` 写在标题文字下方

```
一级标题示例
=============

二级标题示例
-------------
```


### 引用

行首的 `>` 符号标记引用块 


```
> 引用内容
> 引用内容
>> 引用可以嵌套

>引用可以简写

> 一个段落可以只用一个 `>` 符号  
段落内换行  
段落内换行  
```
︾
> 引用内容  
> 引用内容
>> 引用可以嵌套

> 一个段落可以只用一个 `>` 符号  
段落内换行  
段落内换行  


###列表

行首的 `*`、`-`、`+` 加空格能表示无序列表，这几个符号的作用是相同的。
可以在行前加空格来给列表分级


```
*   第一章
*   第二章
 *    第 1 节  
 列表内容可以有行  
*   第三章
```

︾

*   第一章
*   第二章
 *    第 1 节  
 列表内容可以有行  
*   第三章


使用数字加`.`加空格可以表示有序列表，数字可以随意写，生成时会自动计算序号

```
1. 首先
99. 然后
 6.  接下来
 1.  之后
3. 最后
```
︾

1. 首先
99. 然后
 6.  接下来
 1.  之后
3. 最后


###代码区块
 行首 4 个空格或是 1 个 Tab 制表符表示代码块

    <script type="text/javascript" src="Zany.js"></script>
    <body></body>
	
而两个  \` 符号包围的内容是行内代码块，像是这样：`<p>`


###分割线
可以用超过 3 个的  `*` 或 `-` 表示分割线，注意连续 `-` 的上一行必须是空行，否则会被当成标题

```
*****

- - -

---------------------------------------
```
︾

*****

- - -

---------------------------------------

###粗体和斜体

由 `*` 或 `_` 包围的内容表示斜体， `**` 或 `__` 包围的内容表示粗体

```
*斜体*
**粗体**
```

︾

*斜体*
**粗体**


###链接
链接由方括号和括号表示，方括号内是链接文字，括号内是链接：

`[链接文字](http://nullice.com ) ` [链接文字](http://nullice.com ) 

此外还可以在括号里用引号表示链接的悬停提示：

`[链接文字](http://nullice.com "悬停提示")` [链接文字](http://nullice.com "悬停提示")

此外还有两个方括号表示的参考式链接：

 `[链接文字][id]` [链接文字][id]  
 `[链接文字2][id]`  [链接文字2][id]

后一个方括号内填写链接的 ID (可用字母、数字、空白和标点符号，但是并不区分大小写)，而链接的内容可在别处用下面种形式定义（同样悬停提示是可选的）：

`[id]: http://nullice.com/ `  
[id]: http://nullice.com/  "悬停提示1"


参考式的好处是多个链接可以共用一个地址，修改链接 ID 定义 就可以改变所有链接，而且可以让文章中的链接更短，便于阅读。

另外还有一种简写形式，把链接 ID 放在第一个方括号内，第二个方括号留空



`[id][]`[id][]


###图片

`![图片替代文字](链接 "悬停提示")`  
图片和链接语法差不多，只是图片是以 `!` 开头,而方括号里的是图片替代文字，但图片无法载入时才会显示通常没有什么作用，可以不填，括号里是图片地址，和普通链接一样可以引号添加悬停提示

```
![](http://www.w3.org/html/logo/downloads/HTML5_Badge_256.png "悬停提示")
```


![](http://www.w3.org/html/logo/downloads/HTML5_Badge_256.png "悬停提示")


图片也和链接一样可以用两个方括号表示使用的是参考式

`![图片替代文字][BASE64 img]`  
`![BASE64 img][]`

![BASE64 img][]


另外图片链接可以使用 BASE64 文本，使用虹吸墨右键菜单里的 "文件 >>BASE64 文本" 功能可以把图片变成可以直接嵌入文章中的文本：

```
data:image/png;base64, 
```

[BASE64 img]: data:image/png;base64, 

Markdown 的的图片语法不支持控制图片的高度和宽度，如果一定要控制可以直接使用 HTML 的图片标签：

```
<img src="https://s.tylingsoft.com/emoji-icons/whale.png" width="32" height="122" />
```

<img src="https://s.tylingsoft.com/emoji-icons/whale.png" width="32" height="122" />


### 转义符
由于 Markdown 语法使用了一些符合，所以这些符号无法直接出现在文章中，所以  Markdowm 提供了 `\` 转义符来让你能显示他们，
例如本应显示为标题的`#标题`加上转义符后：`\#标题`，就可以不变成标题而直接以普通文本的形式显示出来:

\#标题

## GMF 增强语法

除了以上标准的 Markdown 语法，目前流行的 Markdown 还支持被称为 ["GitHub Flavored Markdown"](https://help.github.com/articles/github-flavored-markdown/) （GFM）的增强语法，


###单词内下划线

在标准 Markdown 中，单词内的下划线也会激活强调语法，会让有下划线的单词一部分变成协调，非常奇怪，要正常显示得在下划线前加 `\` 转义符，而 GFM 会忽略单词内的下划线：

`si_markdowm_pop_out`

si_markdowm_pop_out


###自动连接
GFM 会把文章中的链接文本自动转换为可点击的链接：

`http://nullice.com`

http://nullice.com

###删除线
GFM 语法支持用 `~~` 包围文本来表示删除线：

`~~删除线 删除线~~`

~~删除线 删除线~~



###代码区块与语法高亮

除了标准 Markdown 用缩减来表示代码区块的方法，GFM还支持用 2 个 \``` 行包围来表示代码区块，并且支持在第一个 \``` 后写上编程语言的名字来进行语法高亮：



    ```ruby
	require 'redcarpet' 
	markdown = Redcarpet.new("Hello World!")
	
	puts markdown.to_html
    ```

```ruby
require 'redcarpet' 
markdown = Redcarpet.new("Hello World!")

puts markdown.to_html
 ```


[+]---------虹吸墨中支持高亮的编程语言

同一行的是相同语言的可以使用的别名

as3,actionscript3  
bash,shell  
cf,coldfusion  
c-sharp,csharp  
cpp,c  
css  
delphi,pas,pascal  
diff,patch  
erl,erlang  
groovy  
js,jscript,javascript  
java  
jfx,javafx  
perl,pl  
php  
plain,text  
ps,powershell  
py,python  
rails,ror,ruby  
scala  
sql  
vb,vbnet  
xml,xhtml,xslt,html,xhtml  
[]--------------


###表格
GFM 还提供了表格语法，如下所示：

```
标题1  | 标题2 | 标题2
-----|-----|-----
单元格  | 单元格| 单元格
单元格  | 单元格| 单元格
```

标题1  | 标题2 | 标题
-----|-----|-----
单元格  | 单元格| 单元格
单元格  | 单元格| 单元格

还可以使用 `:` 控制表格对齐方向：


```
| 左对齐  | 居中对齐 | 右对齐 |
| :------------ |:---------------:| -----:|
| col 3 is      | some wordy text | $1600 |
| col 2 is      | centered        |   $12 |
| zebra stripes | are neat        |    $1 |

```

| 左对齐  | 居中对齐 | 右对齐 |
| :------------ |:---------------:| -----:|
| col 3 is      | some wordy text | $1600 |
| col 2 is      | centered        |   $12 |
| zebra stripes | are neat        |    $1 |





