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