Markdown筆記法:讓無紙化筆記隨風起舞

Markdown簡介

Markdown

是一種基於email和usenet格式約定的

純文字格式

,用於面向Web寫作的易讀易寫、text-to-HTML結構化文件的

標記語言

,由少量符號組成,簡潔明瞭,簡單易學。Markdown是由

John Gruber

(Aaron Swartz協助)開發的,並於2004年以語法描述和Perl指令碼(Markdown。pl)的形式釋出,用於將Markdown轉換為HTML,隨後被廣泛應用於知識管理、部落格文件、技術文件等寫作場景,也是無紙化筆記的效率工具之一。

Markdown筆記法:讓無紙化筆記隨風起舞

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進行文件寫作,只需要掌握極少數常見符號的使用規則即可,如下面列表的常用語法:

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|

Markdown筆記法:讓無紙化筆記隨風起舞

塊級元素(程式碼區塊、引用區塊)不能插入表格中

表格對齊格式:

左對齊::——

右對齊:——:

居中對齊::——:

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 三個平臺的版本,並且由於仍在測試中,是完全免費的。其特點表現在:功能之強大、設計之冷靜、體驗之美妙、理念之先進。

Markdown筆記法:讓無紙化筆記隨風起舞

(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)擴充套件的生態系統。

Markdown筆記法:讓無紙化筆記隨風起舞

(3)有道雲筆記

有道雲筆記內建Markdown編輯器和使用指南,在雲同步的賦能之下,讓無紙化筆記的靈活空間更大。

Markdown筆記法:讓無紙化筆記隨風起舞

(4)石墨文件

石墨文件目前支援幾種最基本的Markdown語法,分別如下:

一級、二級、三級標題(相應數量的 # 號 + 空格)

有序列表(數字 + 點 + 空格)

無序列表(星號或減號 + 空格)

清單列表(一對中括號 + 空格)

插入程式碼塊(行首輸入``` + 空格)

Markdown筆記法:讓無紙化筆記隨風起舞

(5)我來

Markdown筆記法:讓無紙化筆記隨風起舞

Markdown應用樣例

(1)無紙筆記

Markdown在雲同步的賦能之下,將啟用無紙化筆記應用的更大空間。

Markdown筆記法:讓無紙化筆記隨風起舞

(2)圖文寫作

Markdown在少量標記符號以最小的輸入代價生成極富表現力的文件,實現了流暢書寫與印刷級閱讀之間的一種平衡,為高效圖文寫作提供了非凡的應用體驗。

Markdown筆記法:讓無紙化筆記隨風起舞

(3)網址導航

當導航網站不再滿足個性需求的時候,當網路書籤不再空間不足的時候,Markdown提供了一個絕佳的解決方案。

Markdown筆記法:讓無紙化筆記隨風起舞

Markdown參考資源

CommonMark

CommonMark Spec

Daring Fireball: Markdown Basics

GitHub Flavored Markdown Spec

typora

Visual Studio Code

有道雲筆記|億萬使用者的選擇

石墨文件-企業線上協同辦公系統平臺,支援雲端多人線上協作編輯文件和表格

我來 wolai - 不僅僅是未來的雲端協作平臺與個人筆記