1. 程式人生 > >Markdown使用中的注意事項

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
    . Item-1-1-1 1.1.1.1. Item-1-1-1-1 1.2. Item-1-2 2. Item-2 6. Item-3

(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

(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

三、網址連結的兩種方式

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
​```
Created with Raphaël 2.1.0StartMy OperationYes or No?catch something...EndMy Subroutineyesno

(2)序列圖

​```sequence
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
​```
Created with Raphaël 2.1.0AliceAliceBobBobHello Bob, how are you?Bob thinksI am good thanks!
  1. This is a footnote
  2. A footnote on “label”
  3. The definition of a footnote.