聲明:本文是對 Markdown 語法說明(簡體中文版)的轉載與臨摹。
宗旨
Markdown 的目標是實現(xiàn)「易讀易寫」。
可讀性,無論如何,都是最重要的。一份使用 Markdown 格式撰寫的文件應該可以直接以純文本發(fā)布,并且看起來不會像是由許多標簽或是格式指令所構成。Markdown 語法受到一些既有 text-to-HTML 格式的影響,包括 [Setext][1]、[atx][2]、[Textile][3]、[reStructuredText][4]、[Grutatext][5] 和 [EtText][6],而最大靈感來源其實是純文本電子郵件的格式。
兼容 HTML
Markdown 語法的目標是:成為一種適用于網(wǎng)絡的書寫語言。
Markdown 不是想要取代 HTML,甚至也沒有要和它相近,它的語法種類很少,只對應 HTML 標記的一小部分。Markdown 的構想不是要使得 HTML 文檔更容易書寫。在我看來, HTML 已經(jīng)很容易寫了。Markdown 的理念是,能讓文檔更容易讀、寫和隨意改。HTML 是一種發(fā)布的格式,Markdown 是一種書寫的格式。就這樣,Markdown 的格式語法只涵蓋純文本可以涵蓋的范圍。
不在 Markdown 涵蓋范圍之內的標簽,都可以直接在文檔里面用 HTML 撰寫。不需要額外標注這是 HTML 或是 Markdown;只要直接加標簽就可以了。
要制約的只有一些 HTML 區(qū)塊元素――比如 <div>、<table>、<pre>、<p> 等標簽,必須在前后加上空行與其它內容區(qū)隔開,還要求它們的開始標簽與結尾標簽不能用制表符或空格來縮進。Markdown 的生成器有足夠智能,不會在 HTML 區(qū)塊標簽外加上不必要的 <p> 標簽。
例子如下,在 Markdown 文件里加上一段 HTML 表格:
這是一個普通段落。
<table>
<tr>
<td>Foo</td>
</tr>
</table>
這是另一個普通段落。
請注意,在 HTML 區(qū)塊標簽間的 Markdown 格式語法將不會被處理。比如,你在 HTML 區(qū)塊內使用 Markdown 樣式的**強調**會沒有效果。
HTML 的區(qū)段(行內)標簽如 <span>、<cite>、<del> 可以在 Markdown 的段落、列表或是標題里隨意使用。依照個人習慣,甚至可以不用 Markdown 格式,而直接采用 HTML 標簽來格式化。舉例說明:如果比較喜歡 HTML 的 <a> 或 <img> 標簽,可以直接使用這些標簽,而不用 Markdown 提供的鏈接或是圖像標簽語法。
和處在 HTML 區(qū)塊標簽間不同,Markdown 語法在 HTML 區(qū)段標簽間是有效的。
特殊字符自動轉換
在 HTML 文件中,有兩個字符需要特殊處理:< 和 &。< 符號用于起始標簽,& 符號則用于標記 HTML 實體,如果你只是想要顯示這些字符的原型,你必須要使用實體的形式,像是 < 和 &。
& 字符尤其讓網(wǎng)絡文檔編寫者受折磨,如果你要打「AT&T」 ,你必須要寫成「AT&T」。而網(wǎng)址中的 & 字符也要轉換。比如你要鏈接到:
http://images.google.com/images?num=30&q=larry+bird
你必須要把網(wǎng)址轉換寫為:
http://images.google.com/images?num=30&q=larry+bird
才能放到鏈接標簽的 href 屬性里。不用說也知道這很容易忽略,這也可能是 HTML 標準檢驗所檢查到的錯誤中,數(shù)量最多的。
Markdown 讓你可以自然地書寫字符,需要轉換的由它來處理好了。如果你使用的 & 字符是 HTML 字符實體的一部分,它會保留原狀,否則它會被轉換成 &。
所以你如果要在文檔中插入一個版權符號 ?,你可以這樣寫:
?
Markdown 會保留它不動。而若你寫:
AT&T
Markdown 就會將它轉為:
AT&T
類似的狀況也會發(fā)生在 < 符號上,因為 Markdown 允許兼容 HTML,如果你是把 < 符號作為 HTML 標簽的定界符使用,那 Markdown 也不會對它做任何轉換,但是如果你寫:
4 < 5
Markdown 將會把它轉換為:
4 < 5
不過需要注意的是,code 范圍內,不論是行內還是區(qū)塊, < 和 & 兩個符號都一定會被轉換成 HTML 實體,這項特性讓你可以很容易地用 Markdown 寫 HTML code (和 HTML 相對而言, HTML 語法中,你要把所有的 < 和 & 都轉換為 HTML 實體,才能在 HTML 文件里面寫出 HTML code。)
[1]: (http://docutils.sourceforge.net/mirror/setext.html)
[2]: (http://www.aaronsw.com/2002/atx/)
[3]: (http://textism.com/tools/textile/)
[4]: (http://docutils.sourceforge.net/rst.html)
[5]: (http://www.triptico.com/software/grutatxt.html)
[6]: (http://ettext.taint.org/doc/)