Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文本內容具有一定的格式。
Markdown 的優點如下:
純文本,所以兼容性極強,可以用所有文本編輯器打開。
讓你專注於文字而不是排版。
格式轉換方便,Markdown 的文本你可以輕松轉換為 html、電子書等。
Markdown 的標記語法有極好的可讀性。
文件后綴名: .md;.markdown;.mdown
宗旨: 易讀易寫
特點: 輕量、簡單、通用
Markdown的語法簡潔明了、學習容易,而且功能比純文本更強,因此有很多人用它寫博客。世界上最流行的博客平台WordPress和大型CMS如Joomla、Drupal都能很好的支持Markdown。完全采用Markdown編輯器的博客平台有Ghost和Typecho。
用於編寫說明文檔,並且以“README.MD”的文件名保存在軟件的目錄下面。
除此之外,現在由於我們有了RStudio這樣的神級編輯器,我們還可以快速將Markdown轉化為演講PPT、Word產品文檔、LaTex論文甚至是用非常少量的代碼完成最小可用原型。在數據科學領域,Markdown已經被確立為科學研究規范,極大地推進了動態可重復性研究的歷史進程。
基本用法:
段落和換行
一個 Markdown 段落是由一個或多個連續的文本行組成,它的前后要有一個以上的空行(空行的定義是顯示上看起來像是空的,便會被視為空行。比方說,若某一行只包含空格和制表符,則該行也會被視為空行)。普通段落不該用空格或制表符來縮進。
「由一個或多個連續的文本行組成」這句話其實暗示了 Markdown 允許段落內的強迫換行(插入換行符),這個特性和其他大部分的 text-to-HTML 格式不一樣(包括 Movable Type 的「Convert Line Breaks」選項),其它的格式會把每個換行符都轉成 <br /> 標簽。
如果你確實想要依賴 Markdown 來插入 <br /> 標簽的話,在插入處先按入兩個以上的空格然后回車。的確,需要多費點事(多加空格)來產生 <br />
標題
Markdown 支持兩種標題的語法,類 Setext 和類 atx 形式。
類 Setext 形式是用底線的形式,利用 = (最高階標題)和 - (第二階標題),例如:
1 This is an H1 2 ============= //這種語法不常見 3 This is an H2 4 -------------
任何數量的 = 和 - 都可以有效果。
類 Atx 形式則是在行首插入 1 到 6 個 # ,對應到標題 1 到 6 階,例如:
1 //這種語法常用 2 # 這是 H1 3 ## 這是 H2 4 .... 5 ###### 這是 H6
你可以選擇性地「閉合」類 atx 樣式的標題,這純粹只是美觀用的,若是覺得這樣看起來比較舒適,你就可以在行尾加上 #,而行尾的 # 數量也不用和開頭一樣(行首的井字符數量決定標題的階數):
1 //也可以閉合,建議不用,只是別人寫的時候能看懂就行 2 # 這是 H1 # 3 ## 這是 H2 ## 5 ..... 6 ### 這是 H3 ######
引用
在我們寫作的時候經常需要引用他人的文字,這個時候引用這個格式就很有必要了,在 Markdown 中,你只需要在你希望引用的文字前面加上 > 就好了,例如:
> 一盞燈, 一片昏黃; 一簡書, 一杯淡茶。 守着那一份淡定, 品讀屬於自己的寂寞。 保持淡定, 才能欣賞到最美麗的風景! 保持淡定, 人生從此不再寂寞。
注:> 和文本之間要保留一個字符的空格。
列表
Markdown 支持有序列表和無序列表。
無序列表使用星號、加號或是減號作為列表標記:
1 * Red 2 * Green 3 * Blue
4 等同於:
5 + Red 6 + Green 7 + Blue
8 也等同於:
9 - Red 10 - Green 11 - Blue
有序列表則使用數字接着一個英文句點:
1 1. Bird 2 2. McHale 3 3. Parish
很重要的一點是,你在列表標記上使用的數字並不會影響輸出的 HTML 結果,上面的列表所產生的 HTML 標記為:
1 <ol> 2 <li>Bird</li> 3 <li>McHale</li> 4 <li>Parish</li> 5 </ol>
如果你的列表標記寫成:
1 1. Bird 2 1. McHale 3 1. Parish 4 或甚至是: 5 3. Bird 6 1. McHale 7 8. Parish
你都會得到完全相同的 HTML 輸出。重點在於,你可以讓 Markdown 文件的列表數字和輸出的結果相同,或是你懶一點,你可以完全不用在意數字的正確性。
當然,項目列表很可能會不小心產生,像是下面這樣的寫法:
1986. What a great season.
換句話說,也就是在行首出現數字-句點-空白,要避免這樣的狀況,你可以在句點前面加上反斜杠。
1986\. What a great season.
代碼區塊
和程序相關的寫作或是標簽語言原始碼通常會有已經排版好的代碼區塊,通常這些區塊我們並不希望它以一般段落文件的方式去排版,而是照原來的樣子顯示,Markdown 會用 <pre> 和 <code> 標簽來把代碼區塊包起來。
要在 Markdown 中建立代碼區塊很簡單,只要簡單地縮進 4 個空格或是 1 個制表符就可以,例如,下面的輸入:
這個每行一階的縮進(4 個空格或是 1 個制表符),都會被移除,例如:
1 Here is an example of AppleScript: 2 tell application "Foo" 3 beep 4 end tell 5 會被轉換為: 6 <p>Here is an example of AppleScript:</p> 7 <pre> 9 <code>tell application "Foo" 10 beep 11 end tell 12 </code> 14 </pre>
一個代碼區塊會一直持續到沒有縮進的那一行(或是文件結尾)。
在代碼區塊里面, & 、 < 和 > 會自動轉成 HTML 實體,這樣的方式讓你非常容易使用 Markdown 插入范例用的 HTML 原始碼,只需要復制貼上,再加上縮進就可以了,剩下的 Markdown 都會幫你處理,例如:
1 <div class="footer"> 2 © 2004 Foo Corporation 3 </div> 4 會被轉換為: 5 <pre><code><div class="footer"> 6 &copy; 2004 Foo Corporation 7 </div> 8 </code></pre>
代碼區塊中,一般的 Markdown 語法不會被轉換,像是星號便只是星號,這表示你可以很容易地以 Markdown 語法撰寫 Markdown 語法相關的文件。
分隔線
你可以在一行中用三個以上的星號、減號、底線來建立一個分隔線,行內不能有其他東西。你也可以在星號或是減號中間插入空格。下面每種寫法都可以建立分隔線:
* * * *** ***** - - - ---------------------------------------
鏈接和圖片
在 Markdown 中,插入鏈接不需要其他按鈕,你只需要使用 [顯示文本](鏈接地址) 這樣的語法即可,例如:
[簡書](http://www.jianshu.com)
在 Markdown 中,插入圖片不需要其他按鈕,你只需要使用  這樣的語法即可,例如:

注:插入圖片的語法和鏈接的語法很像,只是前面多了一個 !。
強調
Markdown 使用星號(*)和底線(_)作為標記強調字詞的符號,被 * 或 _ 包圍的字詞會被轉成用 <em> 標簽包圍,用兩個 * 或 _ 包起來的話,則會被轉成 <strong>,例如:
1 *single asterisks* 2 _single underscores_ 3 **double asterisks** 4 __double underscores__ 5 會轉成: 6 <em>single asterisks</em> 7 <em>single underscores</em> 8 <strong>double asterisks</strong> 9 <strong>double underscores</strong>
你可以隨便用你喜歡的樣式,唯一的限制是,你用什么符號開啟標簽,就要用什么符號結束。
強調也可以直接插在文字中間:
un*frigging*believable
但是如果你的 * 和 _ 兩邊都有空白的話,它們就只會被當成普通的符號。
如果要在文字前后直接插入普通的星號或底線,你可以用反斜線:
\*this text is surrounded by literal asterisks\*
反斜杠
Markdown 可以利用反斜杠來插入一些在語法中有其它意義的符號,例如:如果你想要用星號加在文字旁邊的方式來做出強調效果(但不用 <em> 標簽),你可以在星號的前面加上反斜杠:
\*literal asterisks\*
Markdown 支持以下這些符號前面加上反斜杠來幫助插入普通的符號:
1 \ 反斜線 2 ` 反引號 3 * 星號 4 _ 底線 5 {} 花括號 6 [] 方括號 7 () 括弧 8 # 井字號 9 + 加號 10 - 減號 11 . 英文句點