
前言:Markdown(簡稱MD)語言常用于編寫開源代碼的Readme說明。如今越來越多的人使用Mardown來寫作,原因是它簡單易用。?
2004年,John Gruber創(chuàng)造了MD語言,部分和Aaron Swartz合作而成,Aaron Swartz是一位天才程序員。John Gruber的目的是期望推出“易于閱讀、易于撰寫的純文字格式,并選擇性的轉(zhuǎn)換成有效的XHTML(或是HTML)”。MD語言最重要的設(shè)計理念是“可讀性”,因為HTML和RTF這種復(fù)雜標記語言必須依賴瀏覽器,否則直接閱讀的話會被眾多標簽影響。?
(資料圖片僅供參考)
2008年,Github 使用 Markdown 作為默認的 Readme 文件編寫規(guī)范,并提供了一套渲染規(guī)范。從此MD語言流行起來。?
2004 年末,Markdown發(fā)布規(guī)范1.0.1,這也是目前流行版本。?
2012年開始,包括Jeff Atwood和John MacFarlane在內(nèi)的一群人啟動了標準化工作。?
2014年9月,Gruber反對在這一工作中繼續(xù)使用“Markdown”這個名字,其被更名為CommonMark。?
2016年,標準化組織IETF發(fā)布了RFC 7763和RFC 7764。RFC 7763 從原始變體引入了MIME類型 text/markdown。RFC 7764討論并注冊了MultiMarkdown、GitHub Flavored Markdown (GFM)、Pandoc、CommonMark及Markdown等變體。?
2017年,GitHub發(fā)布了基于CommonMark的GitHub Flavored Markdown(GFM)的正式規(guī)范。?
除了上面提到的CommonMark外,另外一個變種是Markdown Extra,最初用于PHP,后來又被Python和Ruby引入,諸如Drupal等內(nèi)容管理系統(tǒng)也在使用,Markdown Extra在PHP中具體引入時間,目前還不可考。?
MD語言的語法非常簡單,這才讓MD語言可以快速入門,甚至非程序員也能簡單使用。?
支持兩種風格:?
文章標題下一行使用三個等號。章節(jié)標題下一行使用三個減號。?
例如:?
這是整篇文章的題目?===?這是一個章節(jié)題目?---
可以使用多個井號來定義標題。井號放在標題前面,標題和井號之間使用空格隔開。一個井號表示一級標題,兩個井號表示二級標題,以此類推到六級標題。?
例如:?
# 這是一個一級標題?## 這是一個二級標題?### 這是一個三級標題?#### 這是一個四級標題?##### 這是一個五級標題?###### 這是一個六級標題
在列表項之前放置:數(shù)字+點符號。?
例如:?
1. 項目1?2. 項目2?3. 項目3
使用星號、加號或者減號。?
例如:?
### 無序列表?#### 使用星號生成無序列表?* 項目1?* 項目2?* 項目3?#### 使用加號生成無序列表?+ 項目1?+ 項目2?+ 項目3?#### 使用減號生成無序列表?- 項目1?- 項目2?- 項目3
沒有任何標記的文字就是正文。?
段落前后使用空行來標識。?
在行尾加兩個空格。?
沒有單獨標簽,其實英文一般不縮進。中文就用兩個空格標識即可。?
有三種:三個星號,三個減號,或者三個下劃線。效果相同。?
例如:?
### 下面是三類分割線?使用「星號」作為分割線?***?使用「減號」作為分割線?---?使用「下劃線」作為分割線?___
前后都使用兩個波浪號可以加中劃線效果。注意,下劃線不直接支持,可以借用HTML的標簽,但下劃線實際上可以不用的,使用下一節(jié)的強調(diào)語法即可。?
例如:?
### 中劃線語法?這是一個刪除線?~~這是一條刪除線~~?當刪除線內(nèi)部緊跟 "空格" 時,刪除線效果會失效。?~~有效的刪除線~~?~~失效的刪除線 ~~?~~ 失效的刪除線 ~~?~~ 失效的刪除線~~
使用一個星號或者下劃線把內(nèi)容括起來就可以實現(xiàn)斜體。?
使用兩個星號或者兩個下劃線把內(nèi)容括起來就可以實現(xiàn)斜體。?
例如:?
### 強調(diào)語法?- 斜體的演示?*用星號表示的斜體*?_用下劃線表示的斜體_?- 粗體的演示?**用星號表示的粗體**?__用下劃線表示的粗體__
MD語言不直接支持字體修改,需要借用HTML的標簽。實際上,對于一般創(chuàng)作,我們可以不用關(guān)心字體的。?
程序員一般最關(guān)注代碼塊語法:在行首使用連續(xù)四個空格。?
例如:?
#### 使用空格定義代碼塊? pubic static void main(String[] args) { System.out.println("Hello world");? }
在行首加入大于號表示引用。引用支持嵌套,最大可以到7層。引用里面也可以使用加粗、代碼塊、列表等語法。?
例如:?
> 走自己的路,讓別人說去吧。 ?
行內(nèi)引用的用途之一是定義行內(nèi)代碼。使用反引號來把內(nèi)容括起來,就能實現(xiàn)行內(nèi)引用。?
例如:?
#### 定義行內(nèi)代碼?行內(nèi)的 html 代碼:`標題 `
使用中括號來實現(xiàn),注意是成對的中括號,鏈接指向的地址使用小括號。語法為:?
[超級鏈接文字](超級鏈接標簽)?
例如:?
#### 聲明超鏈接的細節(jié)?點擊下面的連接將跳轉(zhuǎn)到[百度](https://www.baidu.com/ )首頁
圖片語法如下:?
") ?
例如:?
#### 插入一張圖片?圖片前的文字。??圖片后的文字
MD語言的版本比較多,不同瀏覽器/解釋器處理不同。建議多使用空格隔開標簽和寫作的內(nèi)容。?
中文版規(guī)范:??http://www.markdown.cn/???
英文版規(guī)范:??https://daringfireball.net/projects/markdown/???