Markdown 是一種輕量級標記語言肴捉,它允許人們使用易讀易寫的純文本格式編寫文檔窃页。Markdown 語言在 2004 由約翰·格魯伯(英語:John Gruber)創(chuàng)建脖卖。Markdown 編寫的文檔可以導(dǎo)出 HTML 、Word、圖像惨篱、PDF机断、Epub 等多種格式的文檔Markdown 編寫的文檔后綴為 .md, .markdown欢揖。
Markdown 應(yīng)用
Markdown 能被使用來撰寫電子書,如:Gitbook坤按。
當(dāng)前許多網(wǎng)站都廣泛使用 Markdown 來撰寫幫助文檔或是用于論壇上發(fā)表消息腹忽。例如:GitHub、簡書、reddit、Diaspora、Stack Exchange但金、OpenStreetMap 、SourceForge等似枕。
編輯器
本教程將使用 Typora 編輯器來講解 Markdown 的語法,Typora 支持 MacOS 答憔、Windows、Linux 平臺,且包含多種主題揪利,編輯后直接渲染出效果。
支持導(dǎo)出HTML敢订、PDF昭齐、Word阱驾、圖片等多種類型文件缆瓣。
Typora 官網(wǎng):https://typora.io/
你也可以使用在線編輯器來測試:http://www.mdeditor.com/隧甚。
有用的書籍
測試實例
Mardown 編寫 Hello World! 語法
# Hello World!
將該代碼格式粘貼到 Typora 效果如下:
Hello World!
Markdown 標題
Markdown 標題有兩種格式戚扳。
1帽借、使用 = 和 - 標記一級和二級標題
= 和 - 標記語法格式如下:
我展示的是一級標題
=================
我展示的是二級標題
-----------------
顯示效果如下:
我展示的是一級標題
我展示的是二級標題
使用 # 號標記
使用 # 號可表示 1-6 級標題,一級標題對應(yīng)一個 # 號握础,二級標題對應(yīng)兩個 # 號禀综,以此類推定枷。
# 一級標題
## 二級標題
### 三級標題
#### 四級標題
##### 五級標題
###### 六級標題
顯示效果如下所示:
一級標題
二級標題
三級標題
四級標題
五級標題
六級標題
Markdown 段落
Markdown 段落沒有特殊的格式欠窒,直接編寫文字就好型将,段落的換行是使用兩個以上空格加上回車七兜。
JIANSHU.COM
BAIDU.COM
顯示效果如下所示:
JIANSHU.COM
BAIDU.COM
當(dāng)然也可以在段落后面使用一個空行來表示重新開始一個段落腕铸。
JIANSHU.COM
BAIDU.COM
顯示效果如下所示:
JIANSHU.COM
BAIDU.COM
字體
Markdown 可以使用以下幾種字體:
*斜體文本*
_斜體文本_
**粗體文本**
__粗體文本__
***粗斜體文本***
___粗斜體文本___
顯示效果如下所示:
斜體文本
斜體文本
粗體文本
粗體文本
粗斜體文本
粗斜體文本
分隔線
你可以在一行中用三個以上的星號狠裹、減號、底線來建立一個分隔線汽烦,行內(nèi)不能有其他東西涛菠。你也可以在星號或是減號中間插入空格。下面每種寫法都可以建立分隔線:
***
* * *
*****
- - -
----------
顯示效果如下所示:
刪除線
如果段落上的文字要添加刪除線刹缝,只需要在文字的兩端加上兩個波浪線 ~~ 即可碗暗,實例如下
JIANSHU.COM
GOOGLE.COM
~~BAIDU.COM~~
顯示效果如下所示:
JIANSHU.COM
GOOGLE.COM
BAIDU.COM
下劃線
下劃線可以通過 HTML 的 <u> 標簽來實現(xiàn):
<u>帶下劃線文本</u>
顯示效果如下所示:
<u>帶下劃線文本</u>
腳注
腳注是對文本的補充說明(簡書不支持腳注)。
Markdown 腳注的格式如下:
[^要注明的文本]
以下實例演示了腳注的用法:
創(chuàng)建腳注格式類似這樣 [^JIANSHU]梢夯。
[^JIANSHU]: 簡書 -- 學(xué)的不僅是技術(shù)言疗,更是夢想!K淘摇!
創(chuàng)建腳注格式類似這樣 [^ JIANSHU]碰缔。
Markdown 列表
Markdown 支持有序列表和無序列表腌且。
無序列表使用星號(*****)巫击、加號(+)或是減號(-)作為列表標記,這些標記后面要添加一個空格,然后再填寫內(nèi)容:
* 第一項
* 第二項
* 第三項
+ 第一項
+ 第二項
+ 第三項
- 第一項
- 第二項
- 第三項
顯示結(jié)果如下:
- 第一項
- 第二項
- 第三項
- 第一項
- 第二項
- 第三項
- 第一項
- 第二項
- 第三項
有序列表使用數(shù)字并加上 . 號來表示,如:
1. 第一項
2. 第二項
3. 第三項
顯示結(jié)果如下:
第一項
第二項
第三項
列表嵌套
列表嵌套只需在子列表中的選項前面添加四個空格即可:
1. 第一項:
- 第一項嵌套的第一個元素
- 第一項嵌套的第二個元素
2. 第二項:
- 第二項嵌套的第一個元素
- 第二項嵌套的第二個元素
顯示結(jié)果如下:
- 第一項:
- 第一項嵌套的第一個元素
- 第一項嵌套的第二個元素
- 第二項:
- 第二項嵌套的第一個元素
- 第二項嵌套的第二個元素
Markdown 區(qū)塊
Markdown 區(qū)塊引用是在段落開頭使用 > 符號 ,然后后面緊跟一個空格符號:
> 區(qū)塊引用
> 簡書
> 學(xué)的不僅是技術(shù)更是夢想'
顯示結(jié)果如下:
區(qū)塊引用
簡書
學(xué)的不僅是技術(shù)更是夢想
另外區(qū)塊是可以嵌套的计福,一個 > 符號是最外層佩厚,兩個 > 符號是第一層嵌套陶冷,以此類推:
> 最外層
> > 第一層嵌套
> > > 第二層嵌套
顯示結(jié)果如下:
最外層
第一層嵌套
第二層嵌套
區(qū)塊中使用列表
區(qū)塊中使用列表實例如下:
> 區(qū)塊中使用列表
> 1. 第一項
> 2. 第二項
> + 第一項
> + 第二項
> + 第三項
顯示結(jié)果如下:
區(qū)塊中使用列表
- 第一項
- 第二項
- 第一項
- 第二項
- 第三項
列表中使用區(qū)塊
如果要在列表項目內(nèi)放進區(qū)塊膊毁,那么就需要在 > 前添加四個空格的縮進嗜逻。
區(qū)塊中使用列表實例如下:
* 第一項
> 簡書
> 學(xué)的不僅是技術(shù)更是夢想
* 第二項
> 學(xué)的不僅是技術(shù)更是夢想
顯示結(jié)果如下:
-
第一項
簡書
學(xué)的不僅是技術(shù)更是夢想 -
第二項
學(xué)的不僅是技術(shù)更是夢想
Markdown 代碼
如果是段落上的一個函數(shù)或片段的代碼可以用反引號把它包起來(`),例如:
`printf()` 函數(shù)
顯示結(jié)果如下:
printf()
函數(shù)
代碼區(qū)塊
代碼區(qū)塊使用 ``` 包裹一段代碼搪哪,并指定一種語言(也可以不指定)。
顯示結(jié)果如下:
```javascript
$(document).ready(function () {
alert('JIANSHU');
});
```
$(document).ready(function () {
alert('JIANSHU');
});
Markdown 鏈接
鏈接使用方法如下:
[鏈接名稱](鏈接地址)
或者
<鏈接地址>
例如:
這是一個鏈接 [簡書](http://www.reibang.com)
顯示結(jié)果如下:
這是一個鏈接 簡書
直接使用鏈接地址:
<http://www.reibang.com>
顯示結(jié)果如下:
http://www.reibang.com
高級鏈接
我們可以通過變量來設(shè)置一個鏈接胃珍,變量賦值在文檔末尾進行:
這個鏈接用 1 作為網(wǎng)址變量 [Google][1]
這個鏈接用 jianshu 作為網(wǎng)址變量 [Jianshu][Jianshu]
然后在文檔的結(jié)尾為變量賦值(網(wǎng)址)
[1]: http://www.google.com/
[Jianshu]: http://www.reibang.com/
顯示結(jié)果如下:
這個鏈接用 1 作為網(wǎng)址變量 Google
這個鏈接用 jianshu 作為網(wǎng)址變量 Jianshu
然后在文檔的結(jié)尾為變量賦值(網(wǎng)址)
Markdown 圖片
Markdown 圖片語法格式如下:
[圖片上傳失敗...(image-f8518e-1600858726513)]
[圖片上傳失敗...(image-eb5837-1600858726513)]
- 開頭一個感嘆號 !
- 接著一個方括號,里面放上圖片的替代文字
- 接著一個普通括號痴奏,里面放上圖片的網(wǎng)址鸵闪,最后還可以用引號包住并加上選擇性的 '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")
顯示結(jié)果如下:
當(dāng)然篡石,你也可以像網(wǎng)址那樣對圖片網(wǎng)址使用變量:
這個鏈接用 1 作為網(wǎng)址變量 [JIANSHU][1].
然后在文檔的結(jié)尾為變量賦值(網(wǎng)址)
[1]: https://cdn2.jianshu.io/assets/web/nav-logo-4c7bbafe27adc892f3046e6978459bac.png
顯示結(jié)果如下:
這個鏈接用 1 作為網(wǎng)址變量 JIANSHU.
然后在文檔的結(jié)尾為變量賦值(網(wǎng)址)
Markdown 還沒有辦法指定圖片的高度與寬度械馆,如果你需要的話冶忱,你可以使用普通的 <img> 標簽(部分編輯器不支持<img>)。
<img src="https://cdn2.jianshu.io/assets/web/nav-logo-4c7bbafe27adc892f3046e6978459bac.png" width="50%">
顯示結(jié)果如下:
<img src="https://cdn2.jianshu.io/assets/web/nav-logo-4c7bbafe27adc892f3046e6978459bac.png" width="50%">
Markdown 表格
Markdown 制作表格使用 | 來分隔不同的單元格忆植,使用 - 來分隔表頭和其他行放可。
語法格式如下:
| 表頭 | 表頭 |
| ---- | ---- |
| 單元格 | 單元格 |
| 單元格 | 單元格 |
以上代碼顯示結(jié)果如下:
表頭 | 表頭 |
---|---|
單元格 | 單元格 |
單元格 | 單元格 |
對齊方式
我們可以設(shè)置表格的對齊方式:
- -: 設(shè)置內(nèi)容和標題欄居右對齊耀里。
- :- 設(shè)置內(nèi)容和標題欄居左對齊。
- :-: 設(shè)置內(nèi)容和標題欄居中對齊。
實例如下:
| 左對齊 | 右對齊 | 居中對齊 |
| :-----| ----: | :----: |
| 單元格 | 單元格 | 單元格 |
| 單元格 | 單元格 | 單元格 |
以上代碼顯示結(jié)果如下:
左對齊 | 右對齊 | 居中對齊 |
---|---|---|
單元格測試數(shù)據(jù) | 單元格測試數(shù)據(jù) | 單元格測試數(shù)據(jù) |
單元格 | 單元格 | 單元格 |
Markdown 高級技巧
支持的 HTML 元素
不在 Markdown 涵蓋范圍之內(nèi)的標簽蜡峰,都可以直接在文檔里面用 HTML 撰寫粥诫。
目前支持的 HTML 元素有:<kbd> <b> <i> <em> <sup> <sub> <br>
等 怕享,如:
使用 <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd> 重啟電腦
輸出結(jié)果為:
轉(zhuǎn)義
Markdown 使用了很多特殊符號來表示特定的意義,如果需要顯示特定的符號則需要使用轉(zhuǎn)義字符,Markdown 使用反斜杠轉(zhuǎn)義特殊字符:
**文本加粗**
\*\* 正常顯示星號 \*\*
輸出結(jié)果為:
文本加粗
** 正常顯示星號 **
Markdown 支持以下這些符號前面加上反斜杠來幫助插入普通的符號:
\ 反斜線
` 反引號
* 星號
_ 下劃線
{} 花括號
[] 方括號
() 小括號
# 井字號
+ 加號
- 減號
. 英文句點
! 感嘆號
公式
當(dāng)你需要在編輯器中插入數(shù)學(xué)公式時挎袜,可以使用兩個美元符 $$ 包裹 TeX 或 LaTeX 格式的數(shù)學(xué)公式來實現(xiàn)。提交后全景,問答和文章頁會根據(jù)需要加載 Mathjax 對數(shù)學(xué)公式進行渲染滞伟。如:
$$
\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)}}
$$
輸出結(jié)果為:
畫流程圖钥弯、時序圖(順序圖)鹦马、甘特圖
1、橫向流程圖源碼格式:
graph LR
A[方形] -->B(圓角)
B --> C{條件a}
C -->|a=1| D[結(jié)果1]
C -->|a=2| E[結(jié)果2]
F[橫向流程圖]
2俊抵、豎向流程圖源碼格式:
graph TD
A[方形] --> B(圓角)
B --> C{條件a}
C --> |a=1| D[結(jié)果1]
C --> |a=2| E[結(jié)果2]
F[豎向流程圖]
3、標準流程圖源碼格式:
st=>start: 開始框
op=>operation: 處理框
cond=>condition: 判斷框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 輸入輸出框
e=>end: 結(jié)束框
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: 結(jié)束框
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: 我很好(響應(yīng))
對象A->對象B: 你真的好嗎?
6吵血、UML時序圖源碼復(fù)雜樣例:
Title: 標題:復(fù)雜使用
對象A->對象B: 對象B你好嗎?(請求)
Note right of 對象B: 對象B的描述
Note left of 對象A: 對象A的描述(提示)
對象B-->對象A: 我很好(響應(yīng))
對象B->小三: 你好嗎
小三-->>對象A: 對象B找我了
對象A->對象B: 你真的好嗎谎替?
Note over 小三,對象B: 我們是朋友
participant C
Note right of C: 沒人陪我玩
7、UML標準時序圖樣例:
%% 時序圖例子,-> 直線蹋辅,-->虛線钱贯,->>實線箭頭
sequenceDiagram
participant 張三
participant 李四
張三->王五: 王五你好嗎?
loop 健康檢查
王五->王五: 與疾病戰(zhàn)斗
end
Note right of 王五: 合理 食物 <br/>看醫(yī)生...
李四-->>張三: 很好!
王五->李四: 你怎么樣?
李四-->王五: 很好!
8侦另、甘特圖樣例:
%% 語法示例
gantt
dateFormat YYYY-MM-DD
title 軟件開發(fā)甘特圖
section 設(shè)計
需求 :done, des1, 2014-01-06,2014-01-08
原型 :active, des2, 2014-01-09, 3d
UI設(shè)計 : des3, after des2, 5d
未來任務(wù) : des4, after des3, 5d
section 開發(fā)
學(xué)習(xí)準備理解需求 :crit, done, 2014-01-06,24h
設(shè)計框架 :crit, done, after des2, 2d
開發(fā) :crit, active, 3d
未來任務(wù) :crit, 5d
耍 :2d
section 測試
功能測試 :active, a1, after des3, 3d
壓力測試 :after a1 , 20h
測試報告 : 48h
效果圖如下: