[TOC]
寫在前面
最終,我的博客還是回歸到了起點。
博客斷斷續(xù)續(xù)幾年,盡是折騰界面美化和各種網(wǎng)站框架或者建站工具,最終,失去了其核心價值,即內(nèi)容和思想的沉淀。這更使得我的博客流于表面,對于自己的成長,也沒有起到太多正面的作用。
反思后,決心回歸最簡單的格式外觀,將重點集中于高質(zhì)量內(nèi)容的沉淀上。
這也是為什么又回到了 Markdown 的懷抱。
至于編輯器,我用過了眾多純編輯器,眾多 Web 版的富文本編輯器,以及許許多多Markdown 編輯器后,決定使用最的 Vim。同時,也推薦一款 Markdown 編輯器Typora
。這款軟件足夠輕量級,同時功能做到了盡可能的簡單。至于 Web 編輯器,我使用簡書
。
Markdown 概述
Markdown 是一種輕量級的 “標(biāo)記語言”,創(chuàng)始人為約翰·格魯伯(John Gruber)。它允許人們“使用易讀易寫的純文本格式編寫文檔,然后轉(zhuǎn)換成有效的XHTML(或者HTML)文檔”。
——Wikipedia
Markdown 擁有這眾多的優(yōu)點
- 純文本編輯
- 學(xué)習(xí)成本低
- 廣泛的軟件支持
- 在碼農(nóng)界有深厚的基礎(chǔ)
基礎(chǔ)語法
強調(diào)
星號與下劃線都可以,單是斜體,雙是粗體,符號可跨行,符號可加空格
代碼 | 效果 |
---|---|
*這是斜體* |
這是斜體 |
_這是斜體_ |
這是斜體 |
**這是粗體** |
這是粗體 |
__這是粗體__ |
這是粗體 |
標(biāo)題
代碼:
# 一級標(biāo)題
## 二級標(biāo)題
### 三級標(biāo)題
#### 四級標(biāo)題
##### 五級標(biāo)題
###### 六級標(biāo)題
效果如下:
一級標(biāo)題
二級標(biāo)題
三級標(biāo)題
四級標(biāo)題
五級標(biāo)題
六級標(biāo)題
注意
- 最后一個
#
字符與標(biāo)題中間要留有一個空格 - 標(biāo)題共提供 6 級
- 一般行文中,標(biāo)題應(yīng)置于行首。若置于表格中,可能無法正確解析
引用
Markdown 中引用通過符號 '>' 來實現(xiàn)。'>' 符號后的空格,可有可無。
在引用的區(qū)塊內(nèi),允許換行存在,換行并不會終止引用的區(qū)塊。如果要結(jié)束引用,需要一行空白行,來結(jié)束引用的區(qū)塊。
代碼:
> 這是一句引用
> 這句仍然在引用區(qū)塊內(nèi)
>> 這是一句嵌套引用
>> 這句仍然在嵌套引用區(qū)塊內(nèi)
>
> 另起一行的引用。前面需要一個視覺上的空行表示內(nèi)層嵌套的結(jié)束,空行前面的('>')可以有可以沒有。
效果如下:
這是一句引用
這句仍然在引用區(qū)塊內(nèi)這是一句嵌套引用
這句仍然在嵌套引用區(qū)塊內(nèi)另起一行的引用。前面需要一個視覺上的空行表示內(nèi)層嵌套的結(jié)束,空行前面的('>')可以有可以沒有。
列表
有序列表
數(shù)字不能省略但可無序,點號之后的空格不能少。
雖然下面代碼的序號是 1,2,4,但是在顯示時,仍然為自然數(shù)序列,并不是完成與編號一致。
同樣的,在列表的最后需要留有一行空行,以表達列表的結(jié)束,不然將作為一個無編號的列表存在。
代碼:
1. 列表 A
2. 列表 B
4. 列表 C
效果如下:
- 列表 A
- 列表 B
- 列表 C
無序列表
符號之后的空格不能少,-+*
效果一樣,但不能混合使用
代碼:
- 列表 A1
- 列表 B1
+ 列表 A2
+ 列表 B2
* 列表 A3
* 列表 B3
效果如下:
- 列表 A1
- 列表 B1
- 列表 A2
- 列表 B2
- 列表 A3
- 列表 B3
嵌套列表
有序與無序,以及有序和無序列表本身都是可以自由的嵌套的。
Markdown 中的列表嵌套,通過在符號前增加空格來表示。同一級別下,前面的空格數(shù)目應(yīng)該保持一致。每遞進一級,我習(xí)慣上使用 2 個空格縮進來表示。
代碼:
- 一級列表 A
- 一級列表 B
- 二級列表 A
* 二級列表 B
+ 三級列表 A
- 一級列表 C
效果如下:
- 一級列表 A
- 一級列表 B
- 二級列表 A
- 二級列表 B
- 三級列表 A
- 一級列表 C
注意,有序列表的嵌套,也是通過預(yù)留空格實現(xiàn)
- 有序一級列表 A
- 有序一級列表 B
- 有序二級列表 A
- 有序二級列表 B
- 無序三級列表 A
- 無序三級列表 B
- 有序一級列表 C
分割線
三個或更多-_*
,必須單獨一行,可含空格。
例如以下形式,都可以表示為分割線。
代碼:
---
- - -
___
_ __
***
* **
* * *
進階語法
超鏈接
圖片與鏈接,在 Markdown 語法中表達類似,都是 [鏈接文字](鏈接地址)
這樣的形式。
普通鏈接
代碼:
[Wikipedia Markdown 條目](https://zh.wikipedia.org/wiki/Markdown)
[Wikipedia Markdown 條目](https://zh.wikipedia.org/wiki/Markdown "Markdown 條目")
效果如下:
Wikipedia Markdown 條目
Wikipedia Markdown 條目
圖片鏈接
圖片需要在 []
前增加一個 !
以使得圖片在網(wǎng)頁上直接顯示,而不僅僅是個鏈接形式。
代碼:


效果如下:


上面分別有兩個超鏈接和兩張圖片,兩個超鏈接的區(qū)別在于一個增加了說明注釋,而另一個沒有,圖片同理。
索引鏈接
索引鏈接,本質(zhì)上與前兩種鏈接一致,只是索引鏈接將 [鏈接文字](鏈接地址)
分離為[鏈接文字][索引]
, [索引]:鏈接地址
的形式。
代碼:
[Wikipedia Markdown 條目][1]
[1]:https://zh.wikipedia.org/wiki/Markdown
效果如下:
[Wikipedia Markdown 條目][markdown]
[markdown]:https://zh.wikipedia.org/wiki/Markdown
表格
對于表格的支持,要根據(jù)具體的 Markdown 解釋器來判定。在 hexo 中,支持以下 Markdown 形式的表格。
需要注意以下幾點:
- 表格第一行為標(biāo)題,樣式會被特殊處理
-
|
前后要留有空格 - 只要是三個
-
字符表示分隔線 - 通過
:
來區(qū)分,左對齊、居中、右對齊
代碼:
| 1 | 2 | 3 |
| --- |:---:| ---:|
| aaa | bbbbbb | c |
| aaaaaa | b | ccc |
效果如下:
1 | 2 | 3 |
---|---|---|
aaa | bbbbbb | c |
aaaaaa | b | ccc |
代碼
行內(nèi)代碼
如果要標(biāo)記一小段行內(nèi)代碼,可以用反引號 ` 把它包起來
代碼:
這是一段行內(nèi)代碼,`System.out.println("article id: " + articleId);` 摘自 Redis 工程。
效果如下:
這是一段行內(nèi)代碼,System.out.println("article id: " + articleId);
摘自 Redis 工程。
區(qū)塊代碼
如果要成塊的引用代碼,有兩種方法,一種是用制表符縮進,另一種,則是用三個反引號 ```,將代碼塊包起來。
在三個反引號后,加上語言說明,例如 ```java 這樣,便指定了之后的代碼采用 java 的高亮。
效果如下:
public int genRandPost(int bound) {
Random rand = new Random();
int cnt = rand.nextInt(bound);
Map<String, String> map = new HashMap<String, String>();
long articleId;
for (int i = 0; i < cnt; i++) {
articleId = jedis.incr("article:");
map.put("author", "author" + i);
map.put("article", "This is article " + i);
jedis.hmset("article:" + articleId, map);
map.clear();
}
System.out.println("Insert " + cnt + " posts.");
return cnt;
}
公式
大神提供了 hexo 下自動部署 MathJax 插件。安裝好插件后,遍可以使用 \(LaTex\) 來顯示數(shù)學(xué)公式了。
在行內(nèi)輸入公式,需要在公式前后加上兩個反斜杠 '' 以及一個括號,前后兩個括號要成對。
而獨立成行的公式,則使用兩個美元符 '$'。
代碼:
在行內(nèi)插入公式 \\(x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\\) 是這樣的。
$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$
$$
\begin{eqnarray}
\nabla\cdot\vec{E} &=& \frac{\rho}{\epsilon_0} \\
\nabla\cdot\vec{B} &=& 0 \\
\nabla\times\vec{E} &=& -\frac{\partial B}{\partial t} \\
\nabla\times\vec{B} &=& \mu_0\left(\vec{J}+\epsilon_0\frac{\partial E}{\partial t} \right)
\end{eqnarray}
$$
效果如下(簡書下不可用):
在行內(nèi)插入公式 \(x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\) 是這樣的。
$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$
$$
\begin{eqnarray}
\nabla\cdot\vec{E} &=& \frac{\rho}{\epsilon_0} \
\nabla\cdot\vec{B} &=& 0 \
\nabla\times\vec{E} &=& -\frac{\partial B}{\partial t} \
\nabla\times\vec{B} &=& \mu_0\left(\vec{J}+\epsilon_0\frac{\partial E}{\partial t} \right)
\end{eqnarray}
$$
參考資料
[1] Wikipedia Markdown 條目,https://zh.wikipedia.org/wiki/Markdown
[2] 不如的博客,http://ibruce.info/2013/11/26/markdown/
[3] Markdown 語法說明 (簡體中文版),http://wowubuntu.com/markdown/index.html
[4] Markdown:讓書寫更美好,http://www.lxweimin.com/p/17fdcf17bbb4
[5] Markdown中插入數(shù)學(xué)公式的方法, http://blog.csdn.net/xiahouzuoxin/article/details/26478179