markdown

一種標記語言

Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文本內容具有一定的格式。

Markdown具有一系列衍生版本,用於擴展Markdown的功能(如表格、腳註、內嵌HTML等等),這些功能原初的Markdown尚不具備,它們能讓Markdown轉換成更多的格式,例如LaTeXDocbook。Markdown增強版中比較有名的有Markdown Extra、MultiMarkdown、 Maruku等。這些衍生版本要麼基於工具,如Pandoc;要麼基於網站,如GitHubWikipedia,在語法上基本兼容,但在一些語法和渲染效果上有改動。

基本用途


Markdown的語法簡潔明了、學習容易,而且功能比純文本更強,因此有很多人用它寫博客。世界上最流行的博客平台WordPress和大型CMS如Joomla、Drupal都能很好的支持Markdown。完全採用Markdown編輯器的博客平台有Ghost和Typecho。
用於編寫說明文檔,並且以“README.md”的文件名保存在軟體的目錄下面。
除此之外,由於我們有了RStudio這樣的神級編輯器,我們還可以快速將Markdown轉化為演講PPT、Word產品文檔、LaTex論文甚至是用非常少量的代碼完成最小可用原型。在數據科學領域,Markdown已經廣泛使用,極大地推進了動態可重複性研究的歷史進程。

使用指南


常用語法

最常見的Markdown格式選項和鍵盤快捷鍵:
輸出后的效果Markdown快捷鍵
Bold**text**Ctrl/⌘ + B
Emphasize*text*Ctrl/⌘ + I
Link[title](http://)Ctrl/⌘ + K
Inline Code`code`Ctrl/⌘ + Shift + K
Image![alt](http://)Ctrl/⌘ + Shift + I
List* itemCtrl + L
Blockquote> quoteCtrl + Q
H1# Heading
H2## HeadingCtrl/⌘ + H
H3### HeadingCtrl/⌘ + H (x2)

標題

標題能顯示出文章的結構。行首插入1-6個 # ,每增加一個 # 表示更深入層次的內容,對應到標題的深度由 1-6 階。
• H1 :# Header 1
• H2 :## Header 2
• H3 :### Header 3
• H4 :#### Header 4
• H5 :##### Header 5
• H6 :###### Header 6

文本樣式

(帶“*”星號的文本樣式,在原版Markdown標準中不存在,但在其大部分衍生標準中被添加)
• 鏈接 :[Title](URL)
• 加粗 :**Bold**
• 斜體字 :*Italics*
• *高亮 :==text==
• 段落 : 段落之間空一行
• 換行符 : 一行結束時輸入兩個空格
• 列表 :* 添加星號成為一個新的列表項。
• 引用 :> 引用內容
• 內嵌代碼 : `alert('Hello World');`
• 畫水平線 (HR) :--------
• 方框:- [ ] -

圖片

使用Markdown將圖像插入文章,你需要在Markdown編輯器輸入 ![]() 。這時在預覽面板中會自動創建一個圖像上傳框。你可以從電腦桌面拖放圖片(.png, .gif, .jpg)到上傳框, 或者點擊圖片上傳框使用標準的圖像上傳方式。如果你想通過鏈接插入網路上已經存在的圖片,只要單擊圖片上傳框的左下角的“鏈接”圖標,這時就會呈現圖像URL的輸入框。想給圖片添加一個標題,你需要做的是將標題文本插圖中的方括弧,e.g;![This is a title]().

腳註

腳註不存在於標準Markdown中。
使用這樣的佔位符號可以將腳註添加到文本中:[^1]. 另外,你可以使用“n”而不是數字的[^n]所以你可以不必擔心使用哪個號碼。在您的文章的結尾,你可以如下圖所示定義匹配的註腳,URL將變成鏈接:

寫代碼

添加內嵌代碼可以使用一對回勾號 `alert('Hello World')`.對於插入代碼, Ghost支持標準的Markdown代碼和GitHub Flavored Markdown (GFM) 。標準Markdown基於縮進代碼行或者4個空格位:
GFM 使用三個回勾號```

例子

鏈接
列表格式
使用Markdown 引用文本:

編輯器


Windows

Typora、Simplenote、Laverna、Boostnote、Inkdrop、Cmd Markdown、馬克飛象、Yu Writer、看雲、有道雲筆記、為知筆記、螞蟻筆記、scratch(中國社區)

MacOS

Typora、Typed、Ulysses、Falcon

Linux

Typora、Atom、GNU Emacs、Remarkable、Haroopad、ReText、UberWriter、Mark My Words

瀏覽器插件

Markdown Preview、Markdown Here

Android

Draft、JotterPad X、堅果雲Markdown

iOS

Byword、simplenote、堅果雲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等變體。

Common

從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要求創建標題的哈希符號由空格字元分隔。

Extra

Markdown Extra是一種輕量級標記語言,基於在PHP(最初)、PythonRuby中實現的Markdown。它添加了普通Markdown語法不具備的功能。內容管理系統支持Markdown Extra,例如Drupal,TYPO3MediaWiki。
它為Markdown添加了以下功能:
● HTML塊內的markdown標記
● 具有id / class屬性的元素
● 圍欄代碼塊
● 表格
● 定義清單
● 腳註
● 縮寫

語法


Markdown是一種簡單的格式化文本的方法,在任何設備上看起來都很棒。它不會做任何花哨的事情,比如改變字體大小、顏色或類型——只是基本的,使用你已經知道的鍵盤符號。

常用語法

Markdown語法詳解快捷鍵效果
*斜體*Ctrl/⌘ + I斜體
**粗體**Ctrl/⌘ + B粗體
# 一級標題"#"后需加空格
## 二級標題以此類推三級標題為三個“#”
[鏈接](http://a)“[ ]”間為顯示的超文本Ctrl/⌘ + K鏈接
![圖片](http://url/a.png)“[ ]”間為圖片名Ctrl/⌘ + Shift + I
markdown
markdown
“ > ”引用" > "后需加空格Ctrl + Q
* 無序列表Ctrl + L
1. 有序列表
---水平分割線————
`內聯代碼` 的使用Ctrl/⌘ + Shift + K
```
代碼塊
```
顏色代碼
***斜體+粗體***斜體+粗體
居中格式文字文字
自動換行
例:12345
67890
Enter
12345
67890
輸入框例:1234輸入框內的1234
顏色第二種文字
文字大小文字
字體

LaTex公式

Markdown亦可用於編輯LaTex公式,可跨平台編輯、跨環境顯示。