Markdown語法基礎

語言: CN / TW / HK

本文包含的Markdown語法有:

  • 標題
  • 文字
  • 粗斜體
  • 劃線
  • 腳註
  • 段落
  • 換行
  • 分隔符
  • 列表
  • 區塊引用
  • 代碼
  • 鏈接
  • 圖片
  • 表格
  • 目錄
  • 註釋
  • 支持的HTML元素
  • 轉義字符

標題

在Markdown 中標題可以使用兩種方式來

  • 一種是用 =-
  • 一種是用 #

1. 使用 =-

至少用三個 =-

代碼示例:

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

2. 使用 #

在想要設置為標題的文字前面加 # 來表示

  • # 後面要加空格
  • 一個#是一級標題,二個#是二級標題,以此類推。支持六級標題。

代碼示例:

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

文字

粗斜體

在MarkDown裏,粗、斜體有兩種寫法,一種是用 * ,一種是用 _ 包裹住你要改變的內容

*_ 與內容要緊貼着,之前不能用空格

  • 一個 * 或一個 _ 是斜體
  • 兩個 * 或兩個 _ 是粗體
  • 三個 * 或三個 _ 是粗斜體

代碼示例:

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

示例效果:

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

劃線

在MarkDown中沒有上劃線和下劃線的自身語法,只有刪除線(中劃線)的語法,但可以通過其他方式實現

  • 上劃線可以通過 Latex 公式實現
  • 刪除線(中劃線)
  • 下劃線使用 HTML 語法或 Latex 公式 實現

代碼示例:

<!--通過Latex公式實現上劃線-->
$\overline{\text{上劃線}}$

~~刪除線~~

<!--通過Latex公式實現下劃線-->
$\underline{\text{下劃線}}$

<!--通過HTML標籤實現下劃線-->
<u>下劃線</u>

示例效果:

<!--通過Latex公式實現上劃線-->

$\overline{\text{上劃線}}$

刪除線

<!--通過Latex公式實現下劃線-->

$\underline{\text{下劃線}}$

<!--通過HTML標籤實現下劃線-->

<u>下劃線</u>

腳註

在MarkDown中支持添加腳註方式來對文本進行補充説明。

在需要添加註腳的文字後加上腳註名:。 然後在文本的任意位置(一般在最後)添加腳註:

腳註自動生成在頁面最最後面,在頁面末尾可以看到,並且腳註後方的鏈接可以直接跳轉回到加腳註的地方。

代碼示例:

腳註示例,這是第一個腳註[^註腳名1],這是第二個腳註[^註腳名2],這是第三個腳註[^註腳名3]
[^註腳名1]:我是腳註一.
[^註腳名2]:我是腳註二.
[^註腳名3]:我是腳註三.

示例效果:

腳註示例,這是第一個腳註,這是第二個腳註,這是第三個腳註

段落

換行

在Markdown 段落沒有特殊的格式

  • 當需要內容換行時,使用兩個以上空格加上回車。
  • 當需要生成新的段落,只需空出一行即可

多個空行只生效一個空行

代碼示例:

上一行內容
下一行內容

上一個段落  

下一個段落

示例效果:

上一行內容

下一行內容

上一個段落

下一個段落

分隔符

在Markdown 分隔符需要使用 *-_ 來建立

  • *-_ 都需要三個及其以上
  • *-_ 可以在中間插入空格,但不能在行內存在其他內容
  • *-_ ,當前後都有段落時,請空出一行

代碼示例:

---

- - -

___

_ _ _

***

* * *

示例效果:

_

_

列表

無序列表

列表內容前可使用 *-+ + 空格 來表示無序列表

代碼示例:

- 無序列表項,使用 `-` + `空格`
+ 無序列表項,使用 `+` + `空格`
* 無序列表項,使用 `*` + `空格`

示例效果:

  • 無序列表項,使用 - + 空格
  • 無序列表項,使用 + + 空格
  • 無序列表項,使用 * + 空格

有序列表

列表內容前可使用 數字 + 空格 來表示有序列表

有序列表會自動給你的列表項按照阿拉伯數字順序添加數字

代碼示例:

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

示例效果:

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

列表嵌套

子列表中的列表項前添加四個空格

代碼示例:

1. 有序列表第一項 A
    - A 的第一項無序列表子項 a1
        1. a1 的第一項有序列表子項 a1a
        1. a1 的第二項有序列表子項 a1b
    - A 的第二項無序列表子項 a2
2. 有序列表第一項 B
    B 的第一行文本內容
    B 的第二行文本內容

示例效果:

  1. 有序列表第一項 A

    • A 的第一項無序列表子項 a1

      1. a1 的第一項有序列表子項 a1a
      2. a1 的第二項有序列表子項 a1b
    • A 的第二項無序列表子項 a2
  2. 有序列表第一項 B
    B 的第一行文本內容
    B 的第二行文本內容

區塊引用

簡單區塊引用

在Markdown中使用 > + 空格 來表示區塊引用

當需要換行時,可以在前方不加 >

需要新板塊可以空出一行

代碼示例:

> 換行可以不加 `>`
 我前面沒有 `>`

> 如果需要新的一塊,塊引用則空出一行重新在文本前方使用 `>`

示例效果:

換行可以不加 >
我前面沒有 >

如果需要新的一塊,塊引用則空出一行重新在文本前方使用 >

區塊引用的嵌套

在Markdown中,區塊引用也可以進行嵌套,只需使用多個 >

嵌套區塊引用使用 > 的個數,代表着嵌套的深度

嵌套區塊引用中 > 之間可以不用空格隔開

代碼示例:

>> 第二層

> 第一層
> > 第二層

> 第一層
> > > 第三層

示例效果:

第二層

第一層

第二層

第一層

第三層

區塊引用與列表

在Markdown中,列表裏面可以使用區塊引用,區塊引用中也可以使用列表

列表還可以嵌套列表,區塊引用還可以嵌套區塊(本章只做簡單介紹)

  • 列表中使用區塊引用

代碼示例:

1. 有序列表 A
    > 引用區塊
    1. 有序列表 Aa
        > 引用區塊
    > 區塊
2. 有序列表 B 

示例效果:

  1. 有序列表 A

    引用區塊

    1. 有序列表 Aa

      引用區塊

  2. 有序列表 B
  • 區塊引用中使用列表

代碼示例:

> - 這序列表 A
> - 無序列表 B
>     * 子列表需要在 `>` 後面加入四個空格 

示例效果:

  • 這序列表 A
  • 無序列表 B

    • 子列表需要在 > 後面加入四個空格

代碼

建議有輸出內容的 Shell 命令前加上 $ ,不會把命令和輸出的內容混淆

  • 代碼段

代碼段可以使用一對反引號\` \`包裹住

代碼示例:

文本段中使用`代碼段`,就用反引號包裹住

示例效果:

文本段中使用 代碼段 ,就用反引號包裹住

  • 代碼區塊

    - 每行文字前加4個空格
      - 每行文字前加1個<kbd>tab</kbd>鍵
      - 使用三個反引號```包裹一段代碼,在第一個```後面可以指定代碼語言,顯示代碼高亮,也可以不指定語言

使用三個引號包裹代碼塊,引號是放在最前方

代碼示例:

    我是使用4個空格,形成的代碼塊
    我是使用一個1個<kbd>tab</kbd>鍵,形成的惡代碼塊
markdown代碼  
# 標題
1. 有序列表
```
___示例效果:___

---

    我是使用4個空格,形成的代碼塊
    我是使用一個1個<kbd>tab</kbd>鍵,形成的惡代碼塊

markdown代碼

標題

  1. 有序列表

    ---
    
    ## 鏈接
    
    在Markdown中,鏈接可以使用到變量
  2. 簡單鏈接

    [鏈接名稱](鏈接網址)
    [鏈接名稱](鏈接網址 "文字説明")
    <鏈接網址>
    

    文字説明可以通過鼠標懸浮鏈接上查看

    代碼示例:

    百度[百度](http://www.baidu.com/)
    百度[百度](http://www.baidu.com/ "百度搜索")
    百度<http://www.baidu.com/>

    示例效果:

    百度 百度

    百度 百度

    百度 http://www.baidu.com/

  3. 高級鏈接

    可以使用變量來調用鏈接

    使用變量要記得在文檔的結尾為變量賦值

    代碼示例:

    [百度][1]
    [谷歌][2]

然後在文檔的結尾為變量賦值(網址)

___示例效果:___

---

[百度][1]
[谷歌][2]

然後在文檔的結尾為變量賦值(網址)

[1]: http://www.baidu.com/
[2]: http://www.google.com/

---


## 圖片

跟鏈接的方法區別在於前面加了個感歎號 ` ! `

* `[圖片上傳失敗...(image-caa9b7-1632883183326)]`
* `[圖片上傳失敗...(image-4d432f-1632883183327)]`
* `你也可以像鏈接一樣使用變量[百度][1].`

然後在文檔的結尾位變量賦值(網址)

[1]: http://www.baidu.com/

__

___代碼示例:___

![百度logo]]( http://www.baidu.com/img/PCt... )

百度

___示例效果:___

---

![百度logo](http://upload-images.jianshu.io/upload_images/26609212-9378a73477b77248.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![百度](http://upload-images.jianshu.io/upload_images/26609212-5240f8634959c454.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 "百度logo")

[百度][1]

[1]: http://www.baidu.com/

---

## 表格

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

表格對齊放方式
* -: 設置內容和標題欄居右對齊。
* :- 設置內容和標題欄居左對齊。
* :-: 設置內容和標題欄居中對齊。

_表格對齊都是寫在表頭下面一行的 `----` 中_

___代碼示例:___
表頭一 靠左對齊 居中對其 靠右對齊
單元格1 單元格2 單元格3 單元格4
單元格11 單元格22 單元格33 單元格44
單元格111 單元格222 單元格333 單元格444
單元格1111 單元格2222 單元格3333 單元格4444
___示例效果:___

---

|  表頭一   | 靠左對齊  |  居中對其  |   靠右對齊  |
| :----- | :-----| :----: | ----: |
| 單元格1 | 單元格2 | 單元格3 | 單元格4 |
| 單元格11 | 單元格22 | 單元格33 | 單元格44 |
| 單元格111 | 單元格222 | 單元格333 | 單元格444 |
| 單元格1111 | 單元格2222 | 單元格3333 | 單元格4444 |

---

## 目錄

在需要目錄出現的地方(一般在文章一開始)放置一個標記,這樣會自動生成一個嵌套的包含所有標題的列表。

_如果對應的各級標題中有空格 , 在錨點鏈接中用`-`代替空格_

___代碼示例:___

本文目錄示例

  • 高級技巧

    註釋

    在Markdown中,註釋可以自定義

  • 可以使用html語法註釋 <!--哈哈我是註釋,不會在瀏覽器中顯示。-->
  • 可以使用 *[·-·]:註釋內容 格式進行註釋,其中[]中的內容可以自定義

    這些註釋在代碼段中無效,代碼塊中註釋是根據所指定語言進行註釋

    代碼示例:

*:註釋,不會顯示

*[@[email protected]]:註釋,不會顯示

___示例效果:___

---

下面寫了註釋,但不會被解析渲染出現,不同解析器支持的結果不同。
<!--註釋,不會顯示-->
[comment]: <> (註釋,不會顯示)
[//]: <> (註釋,不會顯示)
[//]: # (註釋,不會顯示)
*[^_^]:註釋,不會顯示
*[@[email protected]]:註釋,不會顯示
 
---

#### 支持的html元素

目前支持的 HTML 元素有:`<kbd> <b> <i> <em> <sup> <sub> <br>`等
_不在 Markdown 涵蓋範圍之內的標籤,都可以直接在文檔裏面用 HTML 撰寫。_

___代碼示例:___

tab

粗體

斜體

也是斜體

文本 上標

文本 下標

換行

下一行

<details>

<summary>點擊查看</summary>
這裏是摺疊的內容

</details>

還有很多其他html標籤,這裏就不一一列舉了...

___示例效果:___

---

<kbd>tab</kbd>鍵
<b>粗體</b>
<i>斜體</i>
<em>也是斜體</em>
文本<sup>上標</sup>
文本<sub>下標</sub>
換行<br>下一行

<details>
    <summary>點擊查看</summary>
    這裏是摺疊的內容
</details>
還有很多其他html標籤,這裏就不一一列舉了...

---

#### 轉義字符

在Markdown 中使用了很多特殊符號,如果需要顯示特定的符號則需要使用轉義字符。可以使用反斜槓`\`來轉義

___Markdown反斜槓轉義表___

| 轉義字符 | 中文名稱 |    英文名稱 |
| :-----: | :-----:| :----: |
| \    | 反斜槓 | backslash    |
|`    | 反引號 | backtick    |
|*    | 星號 | asterisk |
|_    | 下劃線 | underscore |
|{}    | 大括號 | curly braces |
|[]    | 方括號 | square brackets |
|()    | 括弧 | parentheses |
|#    | 井號 | hash mark |
|+    | 加號 | plus sign |
|-    | 減號(連字符)| minus sign (hyphen) |
|.    | 小數點 | dot |
|!    |感歎號| exclamation mark    |

___代碼示例:___

\ 反斜線

\` 反引號

* 星號

\_ 下劃線

{} 花括號

[] 方括號

() 小括號

\# 井字號

+ 加號

- 減號

. 英文句點

\! 感歎號

___示例效果:___

---

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