在Ubuntu 14.04 64bit上安裝Markdown和繪圖軟體Haroopad

在Ubuntu 14.04 64bit上安裝Markdown和繪圖軟體Haroopad

簡介
Haroopad:一款讓你欲罷不能的Markdown編輯器

身為大程式設計師,我本來是不需要 Markdown 編輯器的,但是 Haroopad 讓我簡直欲罷不能,不能再愛更多。跨平臺,程式碼高亮,Vim 鍵繫結,多列模式,行號,摺疊, Github Flavored Markdown 等功能~

其實它最吸引我的是它的所見即所得的繪圖功能。

安裝方法

下面是在Ubuntu 14.04 64bit上的安裝實錄.

從官網下載x86的deb包,雙擊安裝即可

安裝完成後,從Unity中輸入Haroopad即可開啟程式介面

使用方法
下面給出了一個markdown原始碼示例的使用說明,參見參考文獻[3]

#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~
####外部內容嵌入
* 影象 使用`![text](url)`來貼入圖片 效果:
![Favicon](http://www.walkcd.com/favicon.ico)
* 連結 使用`[linkText](url)`來插入連結 效果:
[部落格首頁](http://www.walkcd.com)
* 電子郵件 使用`<郵件地址>`來插入郵件地址 效果:<[email protected]>
####列表
#####無序列表
使用如下格式(* -可以任意替換):
```
* 第一章
* 第二章
第一條
第二條
- 第一則
```
效果:
* 第一章
* 第二章
* 第一條
* 第二條
* 第一則
#####有序列表
使用如下格式(即為效果):
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]即可生成目錄
####腳註
使用`[^id]` `[^id]:text`即可生成一對腳註 [^demo]
####程式碼語法高亮
在```後加入程式語言名稱
例如````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]:這裡是一個示例腳註。

在haroopad中的效果如下,你可以借鑑該說明來編寫自己的markdown檔案或繪製流程圖
流程圖和時序圖的繪製
Hapoopad目前通過mermaid可以支援流程圖和時序圖的繪製,為了更好地繪製我們需要的圖形,我們需要深入瞭解mermaid的語法。
下面是一些語法文件,需要逐個瞭解
http://knsv.github.io/mermaid/#mermaid
mermaid的原始碼參見
https://github.com/knsv/mermaid
參考文獻
[1].https://github.com/songshaodong/mermaid   原始碼
[2].http://pad.haroopress.com/user.html    官網
[3].http://blog.walkcd.com/applies-to-documentation-of-markdown-and-haroopad-presentation/