Markdown是一種輕量級(jí)標(biāo)記語(yǔ)言,創(chuàng)始人為約翰·格魯伯(英語(yǔ):John Gruber)。 它允許人們使用易讀易寫的純文本格式編寫文檔,然后轉(zhuǎn)換成有效的XHTML(或者HTML)文檔。這種語(yǔ)言吸收了很多在電子郵件中已有的純文本標(biāo)記的特性。
由于Markdown的輕量化、易讀易寫特性,并且對(duì)于圖片,圖表、數(shù)學(xué)式都有支持,許多網(wǎng)站都廣泛使用Markdown來撰寫幫助文檔或是用于論壇上發(fā)表消息。 如GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、簡(jiǎn)書等,甚至還能被使用來撰寫電子書。
Markdown 發(fā)展歷程
John Gruber在2004年創(chuàng)造了Markdown語(yǔ)言,在語(yǔ)法上有很大一部分是跟亞倫·斯沃茨(Aaron Swartz)共同合作的。這個(gè)語(yǔ)言的目的是希望大家使用“易于閱讀、易于撰寫的純文字格式,并選擇性的轉(zhuǎn)換成有效的XHTML(或是HTML)”。 其中最重要的設(shè)計(jì)是可讀性,也就是說這個(gè)語(yǔ)言應(yīng)該要能直接在字面上的被閱讀,而不用被一些格式化指令標(biāo)記(像是RTF與HTML)。 因此,它是現(xiàn)行電子郵件標(biāo)記格式的慣例,雖然它也借鑒了很多早期的標(biāo)記語(yǔ)言,如:Setext、Texile、reStructuredText。
標(biāo)準(zhǔn)化
Markdown已經(jīng)成為典型的轉(zhuǎn)換為HTML的非正式規(guī)范和參考實(shí)現(xiàn)。隨著時(shí)間的推移,出現(xiàn)了許多Markdown實(shí)現(xiàn)。人們開發(fā)這些主要是由于在基本語(yǔ)法之上需要額外的功能 - 例如表格,腳注,定義列表(技術(shù)上的HTML描述列表)和HTML塊內(nèi)的Markdown。其中一些行為偏離了最開始的參考實(shí)現(xiàn)。與此同時(shí),非正式規(guī)范中的一些含糊不清引起了人們的注意。這些問題促使Markdown解析器的一些開發(fā)人員努力實(shí)現(xiàn)標(biāo)準(zhǔn)化。
2016年3月發(fā)布了RFC 7763和RFC 7764。RFC 7763 從原始變體引入了MIME類型 text/markdown。RFC 7764討論并注冊(cè)了MultiMarkdown、GitHub Flavored Markdown (GFM)、Pandoc、CommonMark及Markdown等變體。
CommonMark
從2012年開始,包括Jeff Atwood和John MacFarlane在內(nèi)的一群人啟動(dòng)了標(biāo)準(zhǔn)化工作。一個(gè)社區(qū)網(wǎng)站旨在記錄可用于文檔作者和開發(fā)人員的各種工具和資源,以及各種markdown實(shí)現(xiàn)的實(shí)現(xiàn)者。 2014年9月,Gruber反對(duì)在這一工作中繼續(xù)使用“Markdown”這個(gè)名字,其被更名為CommonMark。 CommonMark發(fā)布了規(guī)范、參考實(shí)現(xiàn)和測(cè)試包的幾個(gè)版本,并計(jì)劃在2018年宣布最終的1.0規(guī)范和測(cè)試包。
GFM
2017年,GitHub發(fā)布了基于CommonMark的GitHub Flavored Markdown(GFM)的正式規(guī)范。 除了表格、刪除線、自動(dòng)鏈接和任務(wù)列表被GitHub規(guī)范作為擴(kuò)展添加之外,它遵循CommonMark規(guī)范。 GitHub還相應(yīng)地更改了其站點(diǎn)上使用的解析器,這要求更改某些文檔 - 例如,GFM要求創(chuàng)建標(biāo)題的哈希符號(hào)由空格字符分隔。
Markdown Extra
Markdown Extra是一種輕量級(jí)標(biāo)記語(yǔ)言,基于在PHP(最初)、Python和Ruby中實(shí)現(xiàn)的Markdown。它添加了普通Markdown語(yǔ)法不具備的功能。內(nèi)容管理系統(tǒng)支持Markdown Extra,例如Drupal,TYPO3和MediaWiki。
它為Markdown添加了以下功能:
-
HTML塊內(nèi)的markdown標(biāo)記
-
具有id / class屬性的元素
-
圍欄代碼塊
-
表格
-
定義清單
-
腳注
-
縮寫
Markdown 優(yōu)勢(shì)
-
世界上最流行的博客平臺(tái)WordPress和大型CMS如Joomla、Drupal都能很好的支持Markdown。完全采用Markdown編輯器的博客平臺(tái)有Ghost和Typecho等。
-
用于編寫說明文檔,以“README.md”的文件名保存在軟件的目錄下面。
-
Markdown可以快速轉(zhuǎn)化為演講PPT、Word產(chǎn)品文檔甚至是用非常少量的代碼完成最小可用原型。
Markdown 語(yǔ)法
Markdown是一種簡(jiǎn)單的格式化文本的方法,在任何設(shè)備上看起來都很棒。它不會(huì)做任何花哨的事情,比如改變字體大小、顏色或類型——只是基本的,使用你已經(jīng)知道的鍵盤符號(hào)。
Markdown語(yǔ)法 |
詳解 |
快捷鍵 |
效果 |
---|---|---|---|
*斜體* |
無 |
Ctrl/⌘ + I |
斜體 |
**粗體** |
無 |
Ctrl/⌘ + B |
粗體 |
# 一級(jí)標(biāo)題 |
"#"后需加空格 |
無 |
無 |
## 二級(jí)標(biāo)題 |
以此類推三級(jí)標(biāo)題為三個(gè)“#” |
無 |
無 |
[鏈接](http://a) |
“[ ]”間為顯示的超文本 |
Ctrl/⌘ + K |
鏈接 |
 |
“[ ]”間為圖片名 |
Ctrl/⌘ + Shift + I |
|
“ > ”引用 |
“ > ”后需加空格 |
Ctrl + Q |
無 |
* 無序列表 |
無 |
Ctrl + L |
無 |
1. 有序列表 |
無 |
無 |
無 |
--- |
水平分割線 |
無 |
———— |
`內(nèi)聯(lián)代碼` 的使用 |
無 |
Ctrl/⌘ + Shift + K |
無 |
``` 代碼塊 ``` |
無 |
無 |
無 |
顏色代碼 |
無 |
無 |
無 |
***斜體+粗體*** |
無 |
無 |
斜體+粗體 |
居中格式 |
文字 |
無 |
文字 |
自動(dòng)換行 |
例:12345 67890 |
Enter |
12345 67890 |
輸入框 |
例:1234 |
無 |
輸入框內(nèi)的1234 |
顏色第二種 |
文字 |
無 |
無 |
文字大小 |
文字 |
無 |
無 |
字體 |
無 |
無 |
無 |