Markdown 教程

image

Markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文本格式編寫文檔。Markdown 語言在 2004 由約翰·格魯伯(英語:John Gruber)創建。Markdown 編寫的文檔可以導出 HTML 、Word、圖像、PDF、Epub 等多種格式的文檔Markdown 編寫的文檔后綴為 .md, .markdown。


Markdown 應用

Markdown 能被使用來撰寫電子書,如:Gitbook。

當前許多網站都廣泛使用 Markdown 來撰寫幫助文檔或是用于論壇上發表消息。例如:GitHub、簡書、reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge等。


編輯器

本教程將使用 Typora 編輯器來講解 Markdown 的語法,Typora 支持 MacOS 、Windows、Linux 平臺,且包含多種主題,編輯后直接渲染出效果。

支持導出HTML、PDF、Word、圖片等多種類型文件。

Typora 官網:https://typora.io/

你也可以使用在線編輯器來測試:http://www.mdeditor.com/。


有用的書籍


測試實例

Mardown 編寫 Hello World! 語法

# Hello World! 

將該代碼格式粘貼到 Typora 效果如下:

Hello World!


Markdown 標題

Markdown 標題有兩種格式。

1、使用 = 和 - 標記一級和二級標題

= 和 - 標記語法格式如下:

我展示的是一級標題
=================

我展示的是二級標題
-----------------

顯示效果如下:

我展示的是一級標題

我展示的是二級標題


使用 # 號標記

使用 # 號可表示 1-6 級標題,一級標題對應一個 # 號,二級標題對應兩個 # 號,以此類推。

# 一級標題
## 二級標題
### 三級標題
#### 四級標題
##### 五級標題
###### 六級標題

顯示效果如下所示:

一級標題

二級標題

三級標題

四級標題

五級標題
六級標題

Markdown 段落

Markdown 段落沒有特殊的格式,直接編寫文字就好,段落的換行是使用兩個以上空格加上回車。

JIANSHU.COM  
BAIDU.COM

顯示效果如下所示:

JIANSHU.COM
BAIDU.COM

當然也可以在段落后面使用一個空行來表示重新開始一個段落。

JIANSHU.COM

BAIDU.COM

顯示效果如下所示:

JIANSHU.COM

BAIDU.COM


字體

Markdown 可以使用以下幾種字體:

*斜體文本*
_斜體文本_
**粗體文本**
__粗體文本__
***粗斜體文本***
___粗斜體文本___

顯示效果如下所示:

斜體文本
斜體文本
粗體文本
粗體文本
粗斜體文本
粗斜體文本


分隔線

你可以在一行中用三個以上的星號、減號、底線來建立一個分隔線,行內不能有其他東西。你也可以在星號或是減號中間插入空格。下面每種寫法都可以建立分隔線:

***

* * *

*****

- - -

----------

顯示效果如下所示:






刪除線

如果段落上的文字要添加刪除線,只需要在文字的兩端加上兩個波浪線 ~~ 即可,實例如下

JIANSHU.COM
GOOGLE.COM
~~BAIDU.COM~~

顯示效果如下所示:

JIANSHU.COM
GOOGLE.COM
BAIDU.COM


下劃線

下劃線可以通過 HTML 的 <u> 標簽來實現:

<u>帶下劃線文本</u>

顯示效果如下所示:

<u>帶下劃線文本</u>


腳注

腳注是對文本的補充說明(簡書不支持腳注)。

Markdown 腳注的格式如下:

[^要注明的文本]

以下實例演示了腳注的用法:

創建腳注格式類似這樣 [^JIANSHU]。

[^JIANSHU]: 簡書 -- 學的不僅是技術,更是夢想!??!

創建腳注格式類似這樣 [^ JIANSHU]。


Markdown 列表

Markdown 支持有序列表和無序列表。

無序列表使用星號(*****)、加號(+)或是減號(-)作為列表標記,這些標記后面要添加一個空格,然后再填寫內容:

 * 第一項
 * 第二項
 * 第三項
 
 + 第一項
 + 第二項
 + 第三項
 
 - 第一項
 - 第二項
 - 第三項

顯示結果如下:

  • 第一項
  • 第二項
  • 第三項
  • 第一項
  • 第二項
  • 第三項
  • 第一項
  • 第二項
  • 第三項

有序列表使用數字并加上 . 號來表示,如:

1. 第一項
2. 第二項
3. 第三項

顯示結果如下:

  1. 第一項

  2. 第二項

  3. 第三項


列表嵌套

列表嵌套只需在子列表中的選項前面添加四個空格即可:

1. 第一項:
    - 第一項嵌套的第一個元素
    - 第一項嵌套的第二個元素
2. 第二項:
    - 第二項嵌套的第一個元素
    - 第二項嵌套的第二個元素

顯示結果如下:

  1. 第一項:
    • 第一項嵌套的第一個元素
    • 第一項嵌套的第二個元素
  2. 第二項:
    • 第二項嵌套的第一個元素
    • 第二項嵌套的第二個元素

Markdown 區塊

Markdown 區塊引用是在段落開頭使用 > 符號 ,然后后面緊跟一個空格符號:

> 區塊引用
> 簡書
> 學的不僅是技術更是夢想'

顯示結果如下:

區塊引用
簡書
學的不僅是技術更是夢想


另外區塊是可以嵌套的,一個 > 符號是最外層,兩個 > 符號是第一層嵌套,以此類推:

> 最外層
> > 第一層嵌套
> > > 第二層嵌套

顯示結果如下:

最外層

第一層嵌套

第二層嵌套


區塊中使用列表

區塊中使用列表實例如下:

> 區塊中使用列表
> 1. 第一項
> 2. 第二項
> + 第一項
> + 第二項
> + 第三項

顯示結果如下:

區塊中使用列表

  1. 第一項
  2. 第二項
  • 第一項
  • 第二項
  • 第三項

列表中使用區塊

如果要在列表項目內放進區塊,那么就需要在 > 前添加四個空格的縮進。

區塊中使用列表實例如下:

* 第一項
    >  簡書
    >  學的不僅是技術更是夢想
* 第二項
    >  學的不僅是技術更是夢想

顯示結果如下:

  • 第一項

    簡書
    學的不僅是技術更是夢想

  • 第二項

    學的不僅是技術更是夢想


Markdown 代碼

如果是段落上的一個函數或片段的代碼可以用反引號把它包起來(`),例如:

`printf()` 函數

顯示結果如下:

printf() 函數


代碼區塊

代碼區塊使用 ``` 包裹一段代碼,并指定一種語言(也可以不指定)。

顯示結果如下:

```javascript
$(document).ready(function () {
    alert('JIANSHU');
});
```
$(document).ready(function () {
    alert('JIANSHU');
});

Markdown 鏈接

鏈接使用方法如下:

[鏈接名稱](鏈接地址)

或者

<鏈接地址>

例如:

這是一個鏈接 [簡書](http://www.lxweimin.com)

顯示結果如下:

這是一個鏈接 簡書


直接使用鏈接地址:

<http://www.lxweimin.com>

顯示結果如下:

http://www.lxweimin.com


高級鏈接

我們可以通過變量來設置一個鏈接,變量賦值在文檔末尾進行:

這個鏈接用 1 作為網址變量 [Google][1]
這個鏈接用 jianshu 作為網址變量 [Jianshu][Jianshu]
然后在文檔的結尾為變量賦值(網址)

  [1]: http://www.google.com/
  [Jianshu]: http://www.lxweimin.com/

顯示結果如下:

這個鏈接用 1 作為網址變量 Google
這個鏈接用 jianshu 作為網址變量 Jianshu
然后在文檔的結尾為變量賦值(網址)


Markdown 圖片

Markdown 圖片語法格式如下:

[圖片上傳失敗...(image-f8518e-1600858726513)]

[圖片上傳失敗...(image-eb5837-1600858726513)]
  • 開頭一個感嘆號 !
  • 接著一個方括號,里面放上圖片的替代文字
  • 接著一個普通括號,里面放上圖片的網址,最后還可以用引號包住并加上選擇性的 'title' 屬性的文字

使用實例:

![JIANSHU 圖標](https://upload-images.jianshu.io/upload_images/12189261-2ac9f1c197b4001e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![JIANSHU 圖標](https://upload-images.jianshu.io/upload_images/12189261-27268adaeb3e097c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 "JIANSHU")

顯示結果如下:


當然,你也可以像網址那樣對圖片網址使用變量:

這個鏈接用 1 作為網址變量 [JIANSHU][1].
然后在文檔的結尾為變量賦值(網址)

[1]: https://cdn2.jianshu.io/assets/web/nav-logo-4c7bbafe27adc892f3046e6978459bac.png

顯示結果如下:

這個鏈接用 1 作為網址變量 JIANSHU.
然后在文檔的結尾為變量賦值(網址)


Markdown 還沒有辦法指定圖片的高度與寬度,如果你需要的話,你可以使用普通的 <img> 標簽(部分編輯器不支持<img>)。

<img src="https://cdn2.jianshu.io/assets/web/nav-logo-4c7bbafe27adc892f3046e6978459bac.png" width="50%">

顯示結果如下:

<img src="https://cdn2.jianshu.io/assets/web/nav-logo-4c7bbafe27adc892f3046e6978459bac.png" width="50%">


Markdown 表格

Markdown 制作表格使用 | 來分隔不同的單元格,使用 - 來分隔表頭和其他行。

語法格式如下:

|  表頭   | 表頭  |
|  ----  | ----  |
| 單元格  | 單元格 |
| 單元格  | 單元格 |

以上代碼顯示結果如下:

表頭 表頭
單元格 單元格
單元格 單元格

對齊方式

我們可以設置表格的對齊方式:

  • -: 設置內容和標題欄居右對齊。
  • :- 設置內容和標題欄居左對齊。
  • :-: 設置內容和標題欄居中對齊。

實例如下:

| 左對齊 | 右對齊 | 居中對齊 |
| :-----| ----: | :----: |
| 單元格 | 單元格 | 單元格 |
| 單元格 | 單元格 | 單元格 |

以上代碼顯示結果如下:

左對齊 右對齊 居中對齊
單元格測試數據 單元格測試數據 單元格測試數據
單元格 單元格 單元格

Markdown 高級技巧

支持的 HTML 元素

不在 Markdown 涵蓋范圍之內的標簽,都可以直接在文檔里面用 HTML 撰寫。

目前支持的 HTML 元素有:<kbd> <b> <i> <em> <sup> <sub> <br>等 ,如:

使用 <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd> 重啟電腦

輸出結果為:


轉義

Markdown 使用了很多特殊符號來表示特定的意義,如果需要顯示特定的符號則需要使用轉義字符,Markdown 使用反斜杠轉義特殊字符:

**文本加粗** 
\*\* 正常顯示星號 \*\*

輸出結果為:

文本加粗
** 正常顯示星號 **


Markdown 支持以下這些符號前面加上反斜杠來幫助插入普通的符號:

\   反斜線
`   反引號
*   星號
_   下劃線
{}  花括號
[]  方括號
()  小括號
#   井字號
+   加號
-   減號
.   英文句點
!   感嘆號

公式

當你需要在編輯器中插入數學公式時,可以使用兩個美元符 $$ 包裹 TeX 或 LaTeX 格式的數學公式來實現。提交后,問答和文章頁會根據需要加載 Mathjax 對數學公式進行渲染。如:

$$
\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix} 
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} &  \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} &  \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
${$tep1}{\style{visibility:hidden}{(x+1)(x+1)}}
$$

輸出結果為:
\mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\ \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\ \end{vmatrix} ${$tep1}{\style{visibility:hidden}{(x+1)(x+1)}}


畫流程圖、時序圖(順序圖)、甘特圖

1、橫向流程圖源碼格式:

graph LR
A[方形] -->B(圓角)
    B --> C{條件a}
    C -->|a=1| D[結果1]
    C -->|a=2| E[結果2]
    F[橫向流程圖]

2、豎向流程圖源碼格式:

graph TD
A[方形] --> B(圓角)
    B --> C{條件a}
    C --> |a=1| D[結果1]
    C --> |a=2| E[結果2]
    F[豎向流程圖]

3、標準流程圖源碼格式:

st=>start: 開始框
op=>operation: 處理框
cond=>condition: 判斷框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 輸入輸出框
e=>end: 結束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op

4、標準流程圖源碼格式(橫向):

st=>start: 開始框
op=>operation: 處理框
cond=>condition: 判斷框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 輸入輸出框
e=>end: 結束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op

5、UML時序圖源碼樣例:

對象A->對象B: 對象B你好嗎?(請求)
Note right of 對象B: 對象B的描述
Note left of 對象A: 對象A的描述(提示)
對象B-->對象A: 我很好(響應)
對象A->對象B: 你真的好嗎?

6、UML時序圖源碼復雜樣例:

Title: 標題:復雜使用
對象A->對象B: 對象B你好嗎?(請求)
Note right of 對象B: 對象B的描述
Note left of 對象A: 對象A的描述(提示)
對象B-->對象A: 我很好(響應)
對象B->小三: 你好嗎
小三-->>對象A: 對象B找我了
對象A->對象B: 你真的好嗎?
Note over 小三,對象B: 我們是朋友
participant C
Note right of C: 沒人陪我玩

7、UML標準時序圖樣例:

%% 時序圖例子,-> 直線,-->虛線,->>實線箭頭
  sequenceDiagram
    participant 張三
    participant 李四
    張三->王五: 王五你好嗎?
    loop 健康檢查
        王五->王五: 與疾病戰斗
    end
    Note right of 王五: 合理 食物 <br/>看醫生...
    李四-->>張三: 很好!
    王五->李四: 你怎么樣?
    李四-->王五: 很好!

8、甘特圖樣例:

%% 語法示例
        gantt
        dateFormat  YYYY-MM-DD
        title 軟件開發甘特圖
        section 設計
        需求                      :done,    des1, 2014-01-06,2014-01-08
        原型                      :active,  des2, 2014-01-09, 3d
        UI設計                     :         des3, after des2, 5d
    未來任務                     :         des4, after des3, 5d
        section 開發
        學習準備理解需求                      :crit, done, 2014-01-06,24h
        設計框架                             :crit, done, after des2, 2d
        開發                                 :crit, active, 3d
        未來任務                              :crit, 5d
        耍                                   :2d
        section 測試
        功能測試                              :active, a1, after des3, 3d
        壓力測試                               :after a1  , 20h
        測試報告                               : 48h

效果圖如下:


流程圖源碼效果圖

結語

如果哪里講的不對或者有新的模塊還請評論說明,非常感謝。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372