1. 程式人生 > >Markdown溫故知新(2):詳解七大標準語法

Markdown溫故知新(2):詳解七大標準語法

  • 1、標題
  • 2、強調(粗體 & 斜體)
  • 3、列表
  • 4、連結 & 圖片
  • 5、程式碼塊
  • 6、引用
  • 7、分割線
  • 8、總結

說明:在 Markdown 中,一行是指由換行符或回車符之外的字元構成的行,而不包含字元的行或僅包含空格或製表符的行則稱之為空行。

1、標題

每篇文章都需要標題,不同的層級需要不同大小的標題。要在 Markdown 中實現這種分級標題的效果,只需要在標題前加上井號和空格即可,井號越多,標題越小,最多 6 個井號。具體規則如下:

  • 在文字前加 1 個#和 1 個空格,文字就會變成一級標題(對應 HTML 中的 H1)
  • 在文字前加 2 個#和 1 個空格,文字就會變成二級標題(對應 HTML 中的 H2)
  • 在文字前加 3 個#和 1 個空格,文字就會變成三級標題(對應 HTML 中的 H3)
  • 在文字前加 4 個#和 1 個空格,文字就會變成四級標題(對應 HTML 中的 H4)
  • 在文字前加 5 個#和 1 個空格,文字就會變成五級標題(對應 HTML 中的 H5)
  • 在文字前加 6 個#和 1 個空格,文字就會變成六級標題(對應 HTML 中的 H6)

一般來說,四級標題就足夠用了,所以有些 Markdown 的樣式預設只對前 4 級標題做區分。

示例一下,輸入文字如下:

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

顯示效果如下:

一級標題

二級標題

三級標題

四級標題

五級標題
六級標題

另外,一級標題還可以在標題的下一行用等號來標識,二級標題還可以在標題的下一行用減號來標識。需要注意的是,這種語法在不同平臺會有差異,有些平臺只需要一個等號或減號就行,也有些平臺至少需要兩個,還有些平臺則至少需要三個。

換句話說,你至少需要寫三個等號或減號才能確保在多數平臺上都有效果。當等號或減號的數量達到三個之後,再多寫就不會有額外效果了,所以有些人會瘋狂的寫上很多個等號或減號,其實沒必要。

示例一下,輸入文字如下:

一級標題
===
二級標題
---

顯示效果如下:
一級標題
===
二級標題
---

2、強調(粗體 & 斜體)

如果不寫任何標記符號,那 Markdown 編輯器對你來說就約等於記事本,可能唯一不同的地方就是無論你在 Markdown 編輯器中輸入多少個空格,最終只會呈現一個。

Markdown 預設只支援粗體和斜體,大多數時候這已經足夠了。只需要在文字前後都加上星號,星號中的文字就會自動變粗或傾斜。具體規則如下:

  • 1、在文字前後各加 1 個*,文字就會變成斜體
  • 2、在文字前後各加 2 個*,文字就會變成粗體
  • 3、在文前前後各加 3 個*,文字就會變成粗斜體

另外,也可以用下劃線來代替星號,效果是一樣的。

示例一下,輸入文字如下:

科技*改變*生活,程式碼_改變_世界
科技**改變**生活,程式碼__改變__世界
科技***改變***生活,程式碼___改變___世界

顯示效果如下:
科技改變生活,程式碼_改變_世界
科技改變生活,程式碼__改變世界
科技改變生活,程式碼_改變___世界

注意:強調效果可以巢狀到列表行和引用段落中,但不能應用到標題或程式碼塊中。我的理解是因為標題和程式碼塊本身就有強調的意味。

3、列表

Markdown 中的列表有兩種,有序列表和無需列表。有序列表的每一行用一個數字、一個英文句點及一個空格來標識,無序列表的每一行用一個減號和一個空格來標識。

有序列表,示例一下,輸入文字如下:

1. 長江
2. 珠江
2. 黃河

顯示效果如下(你有沒有發現黃河前面的 2 被自動糾正為 3 了?):

  1. 長江
  2. 珠江
  3. 黃河

無序列表,示例一下,輸入文字如下:

- 重複言說多半是時間上的損失。
- 教育的目的在於使人能夠繼續教育自己。
- 怕什麼真理無窮,進一寸有一寸的歡喜。

顯示效果如下:

  • 重複言說多半是時間上的損失。
  • 教育的目的在於使人能夠繼續教育自己。
  • 怕什麼真理無窮,進一寸有一寸的歡喜。

其實,無序列表除了可以用減號來標識之外,還可以用加號或星號來標識。比如上例中的-就可以換成+*,效果完全一樣,甚至可以混用這 3 種符號。

列表巢狀,示例一下,輸入文字如下:

- 1、第一章
    - 1.1、第一節
    - 1.2、第二節
        1. 人不僅有好奇心,還有求知慾
        2. 追問事物的原理,是為了控制和利用
        3. 人發明了巫術,又從中分離出了科學
- 2、第二章
    - 2.1、第一節
    - 2.2、第二節
- 3、第三章

顯示效果如下:

  • 1、第一章
    • 1.1、第一節
    • 1.2、第二節
      1. 人不僅有好奇心,還有求知慾
      2. 追問事物的原理,是為了控制和利用
      3. 人發明了巫術,又從中分離出了科學
  • 2、第二章
    • 2.1、第一節
    • 2.2、第二節
  • 3、第三章

引用列表,並且在列表中使用標題、粗體和斜體,示例一下,輸入文字如下:

> ## 五大聯合國常任理事國
- **中華人民共和國**
- *美利堅合眾國*
- 俄羅斯聯邦
- 大不列顛及北愛爾蘭聯合王國
- 法蘭西共和國

顯示效果如下:

五大聯合國常任理事國

  • 中華人民共和國
  • 美利堅合眾國
  • 俄羅斯聯邦
  • 大不列顛及北愛爾蘭聯合王國
  • 法蘭西共和國

列表中還可以包含程式碼塊,需要在程式碼塊的前面加上 8 個空格或 2 個製表符。

4、連結 & 圖片

文字連結的寫法是用一對中括號包裹連結文字,緊接著用一對小括號包裹連結地址,即[連結文字](連結地址)。另外,還可以給連結加 title,用雙引號或單引號包裹並放在連結地址後面,即[連結文字](連結地址 "title文字")

示例一下,輸入文字如下:

[萬能的淘寶](https://www.taobao.com/)
[百度一下](https://www.baidu.com/ "你就知道")

顯示效果如下:
萬能的淘寶
百度一下

圖片連結的寫法只需要在文字連結的前面加上一個感嘆號即可。當然連結地址得是圖片地址,連結文字可寫可不寫,因為不會顯示出來,而且不寫也不影響圖片的顯示。

示例一下,輸入文字如下:

![部落格園Logo](https://www.cnblogs.com/images/logo_small.gif)
![百度Logo](https://www.baidu.com/img/baidu_jgylogo3.gif "百度一下,你就知道")

顯示效果如下:

如果你在本地寫作,也想看圖片連結的效果,那麼你需要把圖片拷貝到 Markdown 檔案所在的目錄中,假如這個圖片名稱是kid.jpg,那麼寫法就是![](kid.jpg)。或者拷貝到所在目錄的子目錄中也行,加入子目錄名稱是imgs,那麼寫法就是![](imgs/kid.jpg)

引用連結
在實際應用中,連結地址往往是比較長的,而且有時候還需要文章中多次引用某個連結,這時候可以在 Markdown 檔案末尾定義一下該連結,並設定一個簡短的連結文字,然後就可以在上文中通過連結文字來引用該連結了。

示例一下,輸入文字如下:

部分中文搜尋用[百度][bd]效果更好,多數英文搜尋用[谷歌][gg]效果更好,技術搜尋[谷歌][gg]的效果往往要比[百度][bd]的效果好很多。
然而遺憾的是,在中國訪問[谷歌][gg]需要FQ。
[bd]: https://www.baidu.com/ "百度一下,你就知道"
[gg]: https://www.google.com/ "牆外更精彩"

顯示效果如下:
部分中文搜尋用[百度][bd]效果更好,多數英文搜尋用[谷歌][gg]效果更好,技術搜尋[谷歌][gg]的效果往往要比[百度][bd]的效果好很多。
然而遺憾的是,在中國訪問[谷歌][gg]需要FQ。
[bd]: https://www.baidu.com/ "百度一下,你就知道"
[gg]: https://www.google.com/ "牆外更精彩"

上面示例的是如何引用文字連結,引用圖片連結的方式與引用文字連結的方式完全相同。

自動連結指的是當你輸入一個 url 或郵箱地址等連結時,Markdown 會自動將其轉換為可訪問的連結,寫法是將連結地址置於一對尖括號之中。

示例一下,輸入文字如下:

<https://www.cnblogs.com/>
https://www.cnblogs.com/ 效果對比行
<[email protected]>
[email protected] 效果對比行

顯示效果如下:
https://www.cnblogs.com/
https://www.cnblogs.com/ 效果對比行
[email protected]
[email protected] 效果對比行

可能你會發現,在你使用的編輯器中寫不寫尖括號效果都一樣,那是因為你使用的編輯器自帶了連結識別功能。在很多部落格或網路筆記中,要想連結顯示成連結的效果,還是得加尖括號。

5、程式碼塊

在 Markdown 的所有語法中,程式碼快大概是最能打動程式設計師的。儘管在程式設計師之外的人看來,程式碼快的效果不過是給文字加了個框,但寫過文件的程式設計師都知道 Word 等文書處理軟體中程式碼的顯示效果和編輯效果有多糟糕。

程式碼塊有兩種:一種是行內程式碼塊,用兩個反單引號(也稱重音符)包裹一下即可;另一種是多行程式碼快,在每行程式碼前加四個空格或一個製表符(Tab)的縮排,然後與上一行文字之間保留一個空行即可。

行內程式碼塊,示例一下,輸入文字如下:

JavaScript 在控制檯輸出訊息的語法是 `console.log(message)`。

顯示效果如下:
JavaScript 在控制檯輸出訊息的語法是 console.log(message)

多行程式碼快,示例一下,輸入文字如下:

    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Hello World!");
        }
    }

顯示效果如下:

class Program {
    static void Main(string[] args) {
        Console.WriteLine("Hello World!");
    }
}

有些工具或平臺支援很多語言的程式碼高亮,現實效果非常好。常見標準中都沒有規定這一塊,所以如果你想要程式碼高亮,就得按你所用工具的語法規則來寫了。

關於多行程式碼快,CommonMark 標準中定義了一個相對來說更加方便書寫的語法,就是以三個獨佔一行的反單引號開頭,並且以三個獨佔一行反單引號結尾。這樣就不用寫縮進了,而且程式碼塊與上一行之間也不必再保留一個空行了。而且常見的各種工具基本都支援,似乎已經成為事實上的標準了。

示例一下,輸入文字如下:
class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
顯示效果如下:

class Program {
    static void Main(string[] args) {
        Console.WriteLine("Hello World!");
    }
}

6、引用

如果需要在文中引入一段有出處的話,就可以採用引用的方式實現。實現的方式是在這段話的開頭或上一行加上一個尖括號和一個空格。雖然 Markdown 的引用語法很簡潔,但用法卻很靈活,幾乎可以和任何語法連用,而且很強大,能夠逐級巢狀引用。

普通引用,示例一下,輸入文字如下:

> 普通文字 **加粗文字** *斜體文字*
> ## 二級標題
> #### 四級標題

顯示效果如下:

普通文字 加粗文字 斜體文字

二級標題

四級標題

巢狀引用,示例一下,輸入文字如下:

> 一層引用
>> 兩層引用
>>> 三層引用
>>>> 四層引用
>>>>> 五層引用

顯示效果如下:

一層引用

兩層引用

三層引用

四層引用

五層引用

7、分割線

有些作者很喜歡用水平分割線,也稱分隔符或橫線,在 Markdown 中,分割線的寫法與標題的第二種寫法十分相似,在新的一行連續輸入 3 個或 3 個以上的星號即可。

星號之間可以有空格,且星號還可以用減號或下劃線來代替。需要注意的是,如果用減號,那分割線與上面的段落之間需要空出一行,否則分割線就會與上面的段落組成二級標題了。

示例一下,輸入文字如下:

***
* * *

---(注意:此行的上一行是空著的)
___

顯示效果如下:
**
* *



8、總結

本文主要講解了 Markdown 的七大標準語法的用法。掌握了這七大標準語法,就足夠應對 Markdown 的一般寫作需求了。

通過本文示例可見,Markdown 的語法完全由標點符號構成,且標點符號經過精心挑選,看起來比較直觀形象。例如,文本週圍的*看起來像是在強調,分割線看起來就像是橫線,列表排列看起來就像是列表。

本文連結:http://www.cnblogs.com/hanzongze/p/markdown-standards.html
版權宣告:本文為部落格園博主 韓宗澤 原創,作者保留署名權!歡迎通過轉載、演繹或其它傳播方式來使用本文,但必須在明顯位置給出作者署名和本文連結!個人部落格,能力有限,若有不當之處,敬請批評指正,謝謝!