Markdown使用中的注意事項
本文主要關注Markdown使用時的高階用法和一些容易出現問題的地方,Markdown的基礎用法大家可以檢視簡書官方關於Markdown的指南。本文主要包含6個方面的內容:
一、空格的使用:
標題字元(#)
,列表字元( - / + / * / 1. / 2.)
,引用字元(>)
和文字之間要
保留一個字元的空格
。這是最標準的 Markdown 寫法。這會避免因為Markdown編輯器的差異而出現顯示的效果不一致的情況出現。
標題字元(#):
程式碼:
# 一級標題 ## 二級標題 ### 三級標題 #### 四級標題 ##### 五級標題 ###### 六級標題
無序列表字元( - / + / * ):
- 文字1 + 文字2 * 文字3
有序列表字元(1. / 2. / 3.):
1. 文字1 2. 文字2 3. 文字3
引用字元(>):
> 引用文字
二、列表和程式碼塊的對齊
(1)多級列表的對齊:
建立多級列表時,每個子級別都要比上個級別前面多打2個空格。
無序列表:
- Item-1 - Item-1-1 + Item-1-1-1 * Item-1-1-1-1 * Item-1-2 + Item-2 * Item-3
有序列表:
1. Item-1 1.1. Item-1-1 1.1.1
(2)一個列表內部多個段落的對齊:
對應列表中的包含多個段落時,該列表下對應的各個段落的開頭都要與第一個段落的開頭對齊,如下面的例子中Code Line 1,Code Line 2和Code Line 3的開頭是對齊的.
* Item-1
* Code Line 1
Code Line 2
Code Line 3
編輯器解析的效果:
- Item-1
- Code Line 1
Code Line 2
Code Line 3
- Code Line 1
(3)程式碼塊的對齊
程式碼塊內部的對齊:
程式碼塊使用字元構建時,文字的內容要與字元的位置對齊,如下面例子中的Code Line 1,Code Line 2和Code Line 3的開頭都與字元的開頭對齊了
Code Line 1
Code Line 2
Code Line 3
程式碼塊與列表的對齊:
在列表下的程式碼塊字元的開頭要與列表對應的段落開頭對齊,比如下面這個例子對於Item-1.1下面的程式碼塊,就是Item-1.1的開頭與的開頭對齊了
- Item-1
- Item-1.1
Code Line 1
Code Line 2
Code Line 3
- Item-1.1
- Item-1
三、網址連結的兩種方式
Markdown關於新增圖片和網址的語法很相似,只是插入圖片的語法比插入網址前面多了一個感嘆號”!”.它們都有兩種插入方式,分別是:行內式和引用式(名字不重要,是我為了方便稱呼自己取的)
注:Markdown不能設定圖片的大小,如果必須設定,則應用HTML標記.
(1)行內式:
圖片:
[百度的圖示](/path/to/img.jpg "Title(可以省略)")
網址:
This is an link of [Google](https://www.google.com.hk).
(2)引用式:
圖片:(顯示連結中帶括號的圖片必須要使用引用式)
![百度的圖示][id(id可以省略)]
網址:
I get 10 times more traffic from [Google][1] than from [Yahoo][2] or [MSN][3].
四、腳註
腳註是在需要標記腳註文字的後面增加一個方括號,方括號中的內容必須以 ^ 開頭,再接著是數字
或字串
標記:
Footnotes[^1] have a label[^2] and a definition[^3].
接著,在檔案的任意地方,可以把這個腳註的內容定義出來。腳註內容定義的形式就是前面引用的腳註的內容,接著一個冒號,再接著一個以上的空格,最後是腳註定義的內容:
[^1]: This is a footnote
[^label]: A footnote on "label"
[^!DEF]: The definition of a footnote.
Footnotes1have a label2 and a definition3.
五、分割線
注意:分割線要與上面的段落至少有一個空行,不然很容易導致上面一段被解析為標題。以下是原因:
Markdown 支援兩種標題的語法,類 Atx 和類 Setext 形式。
Atx(注意
#
後面有個空格)# 一級標題 ## 二級標題 ### 三級標題
Setext(
-
與=
數目任意,最好三個及以上,比較直觀)一級標題 ====== 二級標題 <hr />
在一行中使用三個或三個以上的*, - ,或 _ 可以新增分割線,中間插入空格,但是不能有其他字元.
以分割線要與上面的段落至少有一個空行,不然很容易導致上面一段被解析為標題。
六、流程圖和序列圖
(1)流程圖
```flow
st=>start: Start
e=>end: End
op1=>operation: My Operation
sub1=>subroutine: My Subroutine
cond=>condition: Yes or No?
io=>inputoutput: catch something...
st->op1->cond
cond(yes)->io->e
cond(no)->sub1(right)->op1
```
(2)序列圖
```sequence
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
```