
經(jīng)常寫技術(shù)文檔,需要將文檔像代碼一樣管理,例如可以提交SVN或者GIT,可以比對(duì)歷史差異。用WORD之類的工具,文檔不是純文本,沒法滿足需求。用簡(jiǎn)單文本沒有格式不美觀。Latex最強(qiáng)大,但是對(duì)于一般文檔撰寫又太重量,配置一個(gè)好的模板太費(fèi)神,而且標(biāo)記有些復(fù)雜不好記。
如果你也有上述困苦,那么可以嘗試一下Markdown! Markdown是一種可以使用普通文本編輯器編寫的標(biāo)記語(yǔ)言,類似HTML,不過比HTML簡(jiǎn)單很多! 用markdown撰寫的文章可以直接轉(zhuǎn)成HTML格式進(jìn)行顯示。 目前主流的博客系統(tǒng)都直接支持markdown,開源代碼托管網(wǎng)站GitHub中readme文檔撰寫默認(rèn)是markdown格式。 Mardown語(yǔ)法非常簡(jiǎn)單, 基本十分鐘可以全部學(xué)會(huì)!
為了讓markdown支持更豐富的元素,不同組織和個(gè)人還開發(fā)了許多markdown擴(kuò)展,例如可以支持表格、編程語(yǔ)言代碼塊、數(shù)學(xué)公式等等。
雖然markdown可以用任何文本編輯器進(jìn)行撰寫,但是使用專門的markdown編輯器,可以做到一邊編寫一邊實(shí)時(shí)顯示渲染效果。網(wǎng)上免費(fèi)的markdown編輯器非常多,這里給大家介紹一款個(gè)人覺得最好用的markdown編輯器Haroopad! 它是開源、免費(fèi)、跨平臺(tái)的,支持windows,linux和mac系統(tǒng)。Haroopad已經(jīng)內(nèi)置了各種markdown擴(kuò)展,支持100多種編程語(yǔ)言代碼的直接顯示,例如C/C++, JAVA, C#, Ruby, Python, Erlang, Makefile等等,甚至代碼顯示的背景框都有很多主題可以選擇。另外它支持撰寫數(shù)學(xué)公式,支持一套文本繪圖DSL,支持自動(dòng)生成文檔目錄等等。Haroopad支持直接將文檔發(fā)布成PDF格式。最后Haroopad支持用戶自定義顯示樣式。 由于Haroopad是韓國(guó)人寫的,所以用戶手冊(cè)里面很多都是韓語(yǔ),所以這里將Haroopad的一些用法給大家介紹一下!
Basic usage
Haroopad使用非常簡(jiǎn)單,左邊是編輯區(qū),右邊是預(yù)覽區(qū)。支持實(shí)時(shí)預(yù)覽。

Haroopad支持所有的markdown標(biāo)準(zhǔn)語(yǔ)法。Markdown基本語(yǔ)法見http://www.appinn.com/markdown/,基本上十分鐘之內(nèi)可以全部學(xué)會(huì)。
寫好的markdown文稿保存成*.md文件。md文件是純文本格式,可以用記事本打開直接閱讀修改。在Haroopad下,可以將md文稿發(fā)布成帶樣式的html文件或者pdf文件。
發(fā)布成HTML格式: 文件 -> 導(dǎo)出到 -> HTML
發(fā)布成PDF格式: 文件 -> 打印 -> 打印到文件

Code Block
對(duì)于程序員來說,最需要的就是對(duì)于Code Block的強(qiáng)大支持! Haroopad支持100多種編程語(yǔ)言!每種語(yǔ)言的代碼會(huì)按照語(yǔ)言風(fēng)格進(jìn)行編排縮進(jìn),以及語(yǔ)法高亮。
Code Block需要以~~~加上編程語(yǔ)言標(biāo)識(shí)符的單獨(dú)一行開始,以~~~單獨(dú)一行結(jié)束。
例如對(duì)于一段C++的Code Block。

顯示結(jié)果如下:

代碼塊的背景框風(fēng)格在Haroopad中可以配置:
文件 -> 偏好設(shè)置 -> Code -> 主題
Haroopad支持非常多的代碼框風(fēng)格,例如上面C++中的例子中配置的是sublime的風(fēng)格。
Image
在Haroopad中插入圖片非常方便,如下:

小括號(hào)內(nèi)分別是圖片的url(可以是網(wǎng)絡(luò)地址)、title以及圖片的顯示大?。▎挝籶x)。
Table
Haroopad中繪制表格的語(yǔ)法如下:

顯示效果如下:

Tasklist
Haroopad擴(kuò)展支持tasklist,語(yǔ)法如下:

顯示效果如下:

Math
Haroopad借助Mathjax擴(kuò)展來支持對(duì)數(shù)學(xué)公式的顯示。
為了讓haroopad支持?jǐn)?shù)學(xué)公式首先需要在配置里面開啟數(shù)學(xué)公式支持:
文件 -> 偏好設(shè)置 -> Markdown -> 啟用數(shù)學(xué)表達(dá)式
md文檔中數(shù)學(xué)公式框需要以單獨(dú)$$一行開始,并以$$一行結(jié)束,中間是符合Mathjax要求的數(shù)學(xué)公式:

顯示效果:

Diagram
Haroopad支持mermaid擴(kuò)展。Mermaid是一套繪圖的符號(hào)語(yǔ)言擴(kuò)展,支持繪制各種關(guān)系圖,序列圖。
Haroopad中mermaid繪圖以~~~mermaid單獨(dú)一行開始,以~~~單獨(dú)一行結(jié)束。

顯示效果如下:

其中graph TD指定繪圖方向是從上而下,改為graph LR則是從左至右。
其它例子:

Mermaid擴(kuò)展還支持其它繪圖方式,以及調(diào)整繪圖樣式,具體見mermail介紹https://github.com/knsv/mermaid/wiki


Presentation mode
Haroopad支持直接撰寫PPT。在撰寫文檔的時(shí)候以***做分頁(yè),在presentation mode下就會(huì)是獨(dú)立的一頁(yè)P(yáng)PT。
要將文檔以PPT模式顯示,需要開啟presentation mode:
視圖 -> Presentation Mode

具體參見Haroopad關(guān)于Presentation Mode的說明: http://pad.haroopress.com/page.html?f=how-to-write-presentation
Other features
Haroopad支持對(duì)markdown語(yǔ)法的快捷鍵和自動(dòng)補(bǔ)全。需要的話可以在偏好設(shè)置里面進(jìn)行設(shè)置。
Haroopad支持自動(dòng)插入目錄。具體在需要插入目錄的地方插入空行和
[toc]就搞定一切了。Haroopad支持豐富的媒體插入。例如音頻和視頻。
-
Haroopad支持自定義編輯區(qū)和預(yù)覽發(fā)布的樣式,具體在
文件 -> 偏好設(shè)置 -> 編輯器 ->自定義主題 -> 編輯
文件 -> 偏好設(shè)置 -> 預(yù)覽 ->自定義主題 -> 編輯在彈出的目錄里面有css文件,修改該css文件用來改變樣式。每次修改css后需要重啟haroopad。
Extra
將md文件發(fā)布成pdf后,會(huì)發(fā)現(xiàn)Code Block背景框的風(fēng)格變化了。該問題的解決需要配置haroopad的預(yù)覽樣式css文件,設(shè)置嚴(yán)格按照顏色樣式打印就好了。如下:

Summary
由于其簡(jiǎn)單易用,Markdown在社區(qū)已經(jīng)越來越流行。甚至有些項(xiàng)目將自動(dòng)化測(cè)試用例都用markdown語(yǔ)法來寫,可以直接發(fā)布給客戶當(dāng)作說明文檔,執(zhí)行的時(shí)候靠一段解釋代碼將其翻譯成目標(biāo)語(yǔ)言執(zhí)行,真的做到測(cè)試即文檔。而Haroopad是一款非常強(qiáng)大的markdown編輯器,它內(nèi)置的很多mardown擴(kuò)展都是為了方便程序員,避免了大家到處尋找插件自行配制的繁瑣。到目前為止haroopad是我找到的最好用的markdown編輯器,這篇文檔就是用haroopad撰寫。最后在支持如此多的特性后,haroopad依然非常輕量! 希望Haroopad同樣適合你!

