[TOC]
# Markdown和Haroopad介紹文檔
~~~
[TOC "float:right"]
~~~
## 什么是Markdown
Markdown 是一種輕量級標記語言,創始人為約翰·格魯伯(John Gruber)。簡而言之的說,它可以通過類似HTML的標記語法,使普通文本內容具有一定的格式。
## Markdown有哪些優點
* 純文本實現,使用任何文本編輯器均可編輯,全平臺通用。
* 排版清晰簡潔,可讀性較高,使用擴展可以獲得更多語法格式支持,漂亮美觀。
* 語法簡潔,上手較快,任何人均可在短時間內學會。即使不會語法的讀者,也可以讀懂其原始文件的內容。
* 豐富的工具鏈支持:
- 編輯器:各種支持所見即所得的編輯器,如本文介紹的Haroopad。
- 平臺支持:各大博客系統、Wiki系統均有相關插件,代碼托管平臺Github也支持使用Markdown來編寫Readme文件。
- 和其他格式進行轉化:可以方便的轉化為HTML文件等。
## Markdown的基本語法
Markdown的基本語法非常簡單,本文即用Markdown完成。
### 標題
可以在標題內容前輸入特定數量的井號('#')來實現對應級別的HTML樣式的標題(HTML提供六級標題)。例如:
~~~
# 一級標題
#### 四級標題
~~~
一級和二級標題還有一種寫法:
~~~
一級標題
===================
二級標題
--------------------
~~~
### 特殊格式字體
在需要改變的文字片段前后 使用一對符號可以改變文字為特殊格式:
* 粗體 使用`**文字**`或者`__文字__` 效果:**這里請大家尤其注意!**
* 斜體 使用`*文字*`或者`_文字_` 效果:會不調用父類的 *析構函數* 呢?
* 高亮 使用`==文字==` 效果:==這里是高亮的重點==,但這里不是。
* 下劃線 使用`++文字++` 效果:如果此時的++判斷結果為真++……
* 刪除線 使用`~~文字~~` 效果:~~1.2的版本已經修復這個Bug?~~
* 上角標 使用`^文字^` 效果:單位圓的方程式是x^2^+y^2^=1。
* 下角標 使用`~文字~` 效果:最常見的氧化反應是C+O~2~=CO~2~
### 外部內容嵌入
* 圖像 使用``來貼入圖片 效果:

* 鏈接 使用`[linkText](url)`來插入鏈接 效果:
[博客首頁](http://www.walkcd.com)
* 電子郵件 使用`<郵件地址>`來插入郵件地址 效果:<cdsama@gmail.com>
### 列表
#### 無序列表
使用如下格式(*+-可以任意替換):
```
* 第一章
* 第二章
+ 第一條
+ 第二條
- 第一則
```
效果:
* 第一章
* 第二章
* 第一條
* 第二條
* 第一則
#### 有序列表
使用如下格式(即為效果):
1. 內容
2. 內容
3. 內容
### 表格
簡單表格如下,分號的位置表示對齊方式:
```
|這里是列名一|列二|三|
|:---|:---:|---:|
|這列是左對齊|這列是居中對齊|這列是右對齊|
|左對齊|居中對齊|右對齊|
```
效果:
|這里是列名一|列二|三|
|:---|:---:|---:|
|這列是左對齊|這列是居中對齊|這列是右對齊|
|左對齊|居中對齊|右對齊|
|1|2|3|
### 分割線
以下三個連續符號構成一個分割線,分別是三種不同的分割線:
`***`
`---`
`___`
效果:
***
---
___
### 換行、空格和標記符號
在瀏覽器中一般情況下,Markdown會刪除所有換行和空格,打亂原有的縮進和排版。通過回車和至少兩個空格可以強制換行。
要打出連續空格可以用輸入法輸入全角中文空格或者:
半字大的空白`?`或`?`
全字大的空白`?`或`?`
不斷行的空白格` `或` `
若要輸出符號原本的意思可以加斜線\來輸出 例如:
\* 不是列表
### 引用
使用右尖括號即可插入一段引用,例如:
```
> 這里是一段引用
>> 書是人類進步的階梯。 --高爾基
>
> 退出二級引用
```
效果:
> 這里是一段引用
>> 書是人類進步的階梯。 --高爾基
>
> 退出二級引用
### 代碼
使用一對反引號\` 即可包含一個行內代碼使用一對三個反引號\`\`\`可以包括多行代碼,另外多行Tab也可以用于代碼段,例如:
`code`
```
code blocks
```
效果:`print("hello");`
```
#include <iostream>
int main()
{
std::cout<<"hello world!""<<std::endl;
return 0;
}
```
## Haroopad介紹
Haroopad是一個韓國人寫的Markdown編輯器,項目主頁是:
[Haroopad - The Next Document processor based on Markdown](http://pad.haroopress.com/)
###Haroopad的優點和缺點
優點:
* 跨Windows、Mac、Linux三大平臺。
* 支持實時渲染,可以在編寫的時候實時查看效果。
* 支持復制、導出到HTML。
* 支持多種編程語言語法高亮。
* 支持繪制各種流程時序圖等非標準Markdown格式。
缺點:
* 暫時不支持導出到PDF等格式
### Haroopad支持的額外語法
#### 目錄
單行插入`[toc]`或`[TOC]`即可生成目錄
### 腳注
Markdown 語法:
```
這是一個腳注:[^sample_footnote]
```
效果如下:
這是一個腳注:[^sample_footnote]
[^sample_footnote]: 這里是腳注信息
### 代碼語法高亮
在```后加入編程語言名稱
例如````python`
```python
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
```
### 計劃任務列表
使用`- [ ] task name` `- [x] finished task`來創建計劃任務。
效果:
- [x] 任務1
- [x] 任務2
### 圖像繪制
圖像繪制使用了mermaid引擎([訪問該項目地址](https://github.com/knsv/mermaid))。
目前支持流程圖和時序圖,可以在該項目Wiki上查看更多用法,以下列舉兩個最基本的例子。
流程圖:
```mermaid
graph TD
subgraph 子圖
a1[矩形]
a2>旗幟形]
a3(圓角方形)
end
subgraph 第二個子圖
b1((圓形))
b2{斜方形}
end
a1-->|實線箭頭|a2
a2-->a1
a2-.->|虛線箭頭|a3
a3-.->a2
a3==>|加粗箭頭|a1
a1==>a3
b1---b2
b2---|實線無箭頭|b1
a1-->b1
```
時序圖:
```mermaid
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob->>Alice: Thanks for asking
end
```
[^demo]:這里是一個示例腳注。
# 參考
http://blog.leanote.com/post/freewalk/Markdown-語法手冊
- 講解 Markdown
- 示例
- SVN
- Git筆記
- github 相關
- DESIGNER'S GUIDE TO DPI
- JS 模塊化
- CommonJS、AMD、CMD、UMD、ES6
- AMD
- RequrieJS
- r.js
- 模塊化打包
- 學習Chrome DevTools
- chrome://inspect
- Chrome DevTools 之 Elements
- Chrome DevTools 之 Console
- Chrome DevTools 之 Sources
- Chrome DevTools 之 Network
- Chrome DevTools 之 Memory
- Chrome DevTools 之 Performance
- Chrome DevTools 之 Resources
- Chrome DevTools 之 Security
- Chrome DevTools 之 Audits
- 技巧
- Node.js
- 基礎知識
- package.json 詳解
- corepack
- npm
- yarn
- pnpm
- yalc
- 庫處理
- Babel
- 相關庫
- 轉譯基礎
- 插件
- AST
- Rollup
- 基礎
- 插件
- Webpack
- 詳解配置
- 實現 loader
- webpack 進階
- plugin 用法
- 輔助工具
- 解答疑惑
- 開發工具集合
- 花樣百出的打包工具
- 紛雜的構建系統
- monorepo
- 前端工作流
- 爬蟲
- 測試篇
- 綜合
- Jest
- playwright
- Puppeteer
- cypress
- webdriverIO
- TestCafe
- 其他
- 工程開發
- gulp篇
- Building With Gulp
- Sass篇
- PostCSS篇
- combo服務
- 編碼規范檢查
- 前端優化
- 優化策略
- 高性能HTML5
- 瀏覽器端性能
- 前后端分離篇
- 分離部署
- API 文檔框架
- 項目開發環境
- 基于 JWT 的 Token 認證
- 扯皮時間
- 持續集成及后續服務
- 靜態服務器搭建
- mock與調試
- browserslist
- Project Starter
- Docker
- 文檔網站生成
- ddd