Markdown簡介
Markdown
是一種基於email和usenet格式約定的
純文字格式
,用於面向Web寫作的易讀易寫、text-to-HTML結構化文件的
標記語言
,由少量符號組成,簡潔明瞭,簡單易學。Markdown是由
John Gruber
(Aaron Swartz協助)開發的,並於2004年以語法描述和Perl指令碼(Markdown。pl)的形式釋出,用於將Markdown轉換為HTML,隨後被廣泛應用於知識管理、部落格文件、技術文件等寫作場景,也是無紙化筆記的效率工具之一。
Markdown語法
Markdown
語法受到一些既有 text-to-HTML 格式的影響,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大靈感來源其實是純文字電子郵件的格式。總之, Markdown 的語法由精挑細選的符號組成,其目標是實現
易讀易寫
,成為一種適用於網路的書寫語言。
Gruber對Markdown語法沒有指定明確的規範,在非正式規範中也存在一些含糊不清的地方,使得一些擴充套件語法逐漸偏離最初的參考實現方式,以及編輯器的解析規則也不盡相同。2006年,John MacFarlane對Markdown語法進行補充和修改,釋出了Pandoc‘s Markdown,使Markdown可以轉換為更多的檔案格式。2011年,Fletcher T。 Penney釋出MultiMarkdown(MMD),豐富了Markdown的轉換檔案格式。2013年,Michel Fortin釋出Markdown Extra,對PHP語言實現,新增了圍欄程式碼塊、id/class屬性的元素、表格、任務列表、腳註、縮寫等功能。2014年,Jeff Atwood和John MacFarlane等為Markdown提出了一個標準的、明確的語法規範,以及一套全面的測試,即Common Markdown。2017年,Github釋出GitHub Flavored Markdown(GFM),也成為當下最流行的擴充套件語法。不過,John Gruber認為Markdown不應該完全被標準化,因為不同網站、使用者有著不同需求,沒有一種語法可以滿足所有需求。
(1)常用語法
正如Markdown的目標
易讀易寫
,如要流暢地使用Markdown進行文件寫作,只需要掌握極少數常見符號的使用規則即可,如下面列表的常用語法:
(2)基本語法
1)Block Elements 區塊元素
Paragraphs 段落
一個
段落
是一個或多個連續的文字行,由一個或多個空行分隔。 (
空行
是任何看起來像空行的行-一行只包含空格或製表符的行都被視為空行。)普通段落不應以空格或製表符縮排。
如果行與行之間沒有空行,則會被視為同一段落
如果行與行之間有空行,則會被視為不同的段落
空行是指行內什麼都沒有,或者只有空格和製表符
如果想在段內換行,則需要在上一行的結尾插入兩個以上的空格然後按回車鍵
應該限制每行字元的數量,通常每行不超過80個字元
Headers 標題
Markdown支援兩種樣式的標記語法:Setext和atx樣式。 Setext樣式的一級標題和二級標題分別用等號(=)和連字元(-)進行“下劃線”來建立的,但這種語法只支援兩級標題。 而atx樣式的標題,是透過在行開頭1-6個井號(#)標記,分別對應一級到六級標題。
a。
Setext樣式標題
一級標題===二級標題——-
注:等號(=)和連字元(-)的數量不限,但至少為2個
b。 atx
樣式標題
# 一級標題## 二級標題### 三級標題#### 四級標題##### 五級標題###### 六級標題
注:Markdown中最多隻支援前六級標題
Blockquotes 引用
用電子郵件樣式的“>”尖括號標記引用。
在每一行最前面加上
>
或只在整個段落的第一行最前面加上
>
區塊引用可以巢狀使用
引用的區塊內也可以巢狀使用其他的 Markdown 語法,包括標題、列表、程式碼區塊等
> 這是引用>> ## 引用中巢狀其他語法標記,包括標題、列表等
Lists 列表
Markdown支援無序列表和有序列表兩種列表型別。
a。
無序列表:使用星號,加號和連字元(*,+和-)作為列表標記,這三個標記可以互換。
* A* B* C
+ A+ B+ C
- A- B- C
b。
有序列表:使用常規數字,後跟句點作為列表標記。
1。 A2。 B3。 C
c。
多段落列表:
如果在專案之間插入空白行,則將獲得列表專案文字的
標記。 您可以透過將段落縮排4個空格或1個製表符來建立多段落列表項。
* 一個列表專案一個段落* 另一個列表專案
程式碼區塊
縮排 4 個空格或是 1 個製表符以在 Markdown 中建立程式碼區塊,一個程式碼區塊會一直持續到沒有縮排的那一行(或是檔案結尾)。
Horizontal Rules 分隔線
使用三個以上的星號(*)、減號(-)、底線(_),標記符號中可以插入空格,但不能有其他字元。
* * **********—— - -______
2)Span Elements 區段元素
Links 連結
Markdown支援行內式(inline-style)和參考式(reference-style)兩種連結樣式,其中參考式又可以使用顯式或隱式連結標記功能都,使用方括號
[]
標記連結文字。
a。
Inline-style 行內式
在方塊括號後面緊接著圓括號並插入網址連結,如需加上鍊接的 title 文字,只需在網址之後,用雙引號把 title 文字括起來即可。
This is an [example link](https://example。com/)This is an [example link](https://example。com/ “With a Title”)
b。
Reference-style 參考式(顯式連結標記)
按照名稱引用參考式的連結,並在文件其他位置定義該名稱。名稱(Title)屬性是可選的,可以是字母、數字和空格,但不區分大小寫。
I get 10 times more traffic from [Google][1] than from [Yahoo][2] or [MSN][3][1]: https://google。com/ “Google”[2]: https://search。yahoo。com/ “Yahoo Search”[3]: https://search。msn。com/ “MSN Search”
I star my morning with a cup of coffee and [The New York Times][NY Times]。[ny times]: http://www。nytimes。com/
連結內容定義的形式為:
方括號(前面可以選擇性地加上至多三個空格來縮排),裡面輸入連結文字
接著一個冒號
接著一個以上的空格或製表符
接著連結的網址
選擇性地接著 title 內容,可以用單引號、雙引號或是括弧包著
連結辨別標籤可以有字母、數字、空白和標點符號,但是並不區分大小寫
c。
Reference-style 參考式(隱式連結標記)
省略指定連結標記,連結標記會視為等同於連結文字,要用隱式連結標記只要在連結文字後面加上一個空的方括號,連結的定義可以放在檔案中的任何一個地方。
Visit [Daring Fireball][] for more information。[Daring Fireball]: http://daringfireball。net/
Emphasis 強調
Markdown使用星號和下劃線表示重點範圍。使用單星號或單下劃線表示
斜體
,使用雙星號或雙下劃線表示
加粗
。
*斜體*_斜體_**加粗**__加粗__
Code 程式碼
如果要標記一小段行內程式碼,你可以用反引號把它包起來(`)。
Use the `printf()` function。
程式碼區段的起始和結束端都可以放入一個空白,起始端後面一個,結束端前面一個,這樣就可以在區段的一開始就插入反引號:
A single backtick in a code span: `` ` ``A backtick-delimited string in a code span: `` `foo` ``
Images 圖片
圖片標記語法與連結相似,也包括行內式(inline-style)和參考式(reference-style)兩種標記樣式。
![Alt text][id]
方括號中為放上圖片的替代文字,普通括號,裡面放上圖片的網址/相對地址,最後還可以用引號包住並加上 選擇性的 ’title‘ 文字
a。
Inline-style 行內式
![alt text](/path/to/img。jpg)![alt text](/path/to/img。jpg “optional title”)
b。
參考式(reference-style)
![alt text][id][id]: /path/to/img。jpg “title”
3)Miscellaneous 其他
Automatic Links 自動連結
Markdown 支援以比較簡短的自動連結形式來處理網址和電子郵件信箱,只要是用方括號包起來, Markdown 就會自動把它轉成連結。
Backslash Escapes 反斜槓/轉義
任何ASCII標點字元可以透過反斜槓轉義,Markdown 可以利用反斜槓來插入一些在語法中有其它意義的符號 :
\ 反斜槓
` 反引號
* 星號
_ 下劃線
{} 花括號
[] 方括號
() 括弧
# 井字號
+ 加號
- 減號
。 點號
! 感嘆號
(3)擴充套件語法
1)Block Elements 區塊元素
Task List 任務列表
- [ ]- [x]- [X]
Fenced Code Blocks 圍欄程式碼塊
圍欄程式碼塊使用連續3個`或~包裹,還支援語法高亮,增強了程式碼的可讀性和可維護性。
Here’s an example:```function test() { console。log(“notice the blank line before this function?”);}```syntax highlighting:```rubyrequire ‘redcarpet’markdown = Redcarpet。new(“Hello World!”)puts markdown。to_html```
Math Blocks 數學塊
Markdown數學公式的表達形式包括兩種型別:
a。
行內公式(inline)
b。
塊間公式(displayed)
Markdown數學公式的書寫形式對應兩種型別:
a。 行內公式
$……$
b。 塊間公式
$$……$$
詳細內容請見頭條號【胡博麟】文章《Markdown筆記法:讓數學公式躍然紙上》
Table 表格
表是由行和列組成的資料安排,包括單個標題行、將標題與資料分隔開的分隔符行以及零個或多個數據行,其基本語法如下:
|表頭1|表頭2|表頭3||——|——|——||內容1|內容2|內容3|
塊級元素(程式碼區塊、引用區塊)不能插入表格中
表格對齊格式:
左對齊::——
右對齊:——:
居中對齊::——:
Footnotes 腳註
文字內容[^參考][^參考]:腳註的描述
Table of Content 目錄
[TOC]
自動獲取文章的標題來生成目錄,並隨標題修改而自動更新
錨點
錨點,也稱為書籤,用來標記文件的特定位置,使用錨點可以跳轉到當前文件或其他文件中指定的標記位置。
錨點名是區分字母大小寫的
錨點名中不能含有空格,也不能含有特殊字元
建議使用數字和字母命名錨點名
[錨點描述](#錨點名)
註釋
在編輯和預覽時,註釋的內容會被顯示;在匯出PDF或Word時,則會被隱藏。
<!——註釋內容——>
2)Span Elements 區段元素
Strikethrough 刪除
~~text~~
下劃線
透過HTML的
標籤實現
下劃線
下劃線
URLs 自動連結
自動連結用方括號將網址連結或郵箱地址括起來,但只識別以
www
或
http://
開頭的URL地址。
Emoji 表情符
:smile:
:laughing:
:+1:
:-1:
:clap:
Subscript & Superscript 下標與上標
上標
^上標^
下標
~下標~
Highlight 高亮
高亮
==高亮==
強制性換行
a。 在行尾加兩個空格然後回車
b。
使用HTML標籤
HTML 標籤
a。
嵌入音訊
參考“嵌入影片”
b。
嵌入影片
Markdown應用工具
(1)Typora
Typora 是一款支援實時預覽的 Markdown 文字編輯器,有 OS X、Windows、Linux 三個平臺的版本,並且由於仍在測試中,是完全免費的。其特點表現在:功能之強大、設計之冷靜、體驗之美妙、理念之先進。
(2)VS Code
Visual Studio Code(簡稱“VS Code” )是Microsoft在2015年4月30日Build開發者大會上正式宣佈一個運行於 Mac OS X、Windows和 Linux 之上的,針對於編寫現代Web和雲應用的跨平臺原始碼編輯器,可在桌面上執行,並且可用於Windows,macOS和Linux。它具有對JavaScript,TypeScript和Node。js的內建支援,並具有豐富的其他語言(例如C++,C#,Java,Python,PHP,Go,Markdown)和執行時(例如。NET和Unity)擴充套件的生態系統。
(3)有道雲筆記
有道雲筆記內建Markdown編輯器和使用指南,在雲同步的賦能之下,讓無紙化筆記的靈活空間更大。
(4)石墨文件
石墨文件目前支援幾種最基本的Markdown語法,分別如下:
一級、二級、三級標題(相應數量的 # 號 + 空格)
有序列表(數字 + 點 + 空格)
無序列表(星號或減號 + 空格)
清單列表(一對中括號 + 空格)
插入程式碼塊(行首輸入``` + 空格)
(5)我來
Markdown應用樣例
(1)無紙筆記
Markdown在雲同步的賦能之下,將啟用無紙化筆記應用的更大空間。
(2)圖文寫作
Markdown在少量標記符號以最小的輸入代價生成極富表現力的文件,實現了流暢書寫與印刷級閱讀之間的一種平衡,為高效圖文寫作提供了非凡的應用體驗。
(3)網址導航
當導航網站不再滿足個性需求的時候,當網路書籤不再空間不足的時候,Markdown提供了一個絕佳的解決方案。
Markdown參考資源
CommonMark
CommonMark Spec
Daring Fireball: Markdown Basics
GitHub Flavored Markdown Spec
typora
Visual Studio Code
有道雲筆記|億萬使用者的選擇
石墨文件-企業線上協同辦公系統平臺,支援雲端多人線上協作編輯文件和表格
我來 wolai - 不僅僅是未來的雲端協作平臺與個人筆記