Markdown 的基本語法

Markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文本格式編寫文檔,然後轉換成格式豐富的HTML頁面。 —— [ 維基百科 ]

由於排版簡單、格式轉換方便等優點,Markdown 變得越來越流行。支持 Markdown 的編輯器也越來越多,這些編輯器大多擴展了 Markdown 的功能,如表格、腳註、內嵌 HTML 等,導致其功能不完全一致。但是,Markdown 本身的語法種類很少,只對應 HTML 標記的一小部分,這些基本語法是通用的。接下來本文就介紹一下這些基本語法。

段落和換行

一個 Markdown 段落是由一個或多個連續的文本行組成,它的前後要有一個及以上的空行。

段落1

段落2     // 段落2和段落1之間有一個空行

段落3     // 段落3和段落2之間有一個空行

相對應的 HTML 爲

<p>段落1</p><p>段落2</p><p>段落3</p>

“由一個或多個連續的文本行組成”這句話其實暗示了 Markdown 允許段落內的強迫換行。但是,在文本中輸入的換行會從最終生成的結果中刪除,瀏覽器會根據可用空間自動換行。如果想強迫換行,需要在行尾插入至少兩個空格,然後換行。

段落4第一行  
段落4第二行      // 第一行行尾有兩個空格

相對應的 HTML 爲

<p>段落4第一行<br>段落4第二行</p>

分隔線

可以在一行中用三個及以上的 *-_ 來建立一個分隔線,對應 HTML 中的 <hr>

***
---
___

標題

可以在標題內容前輸入特定數量的 # 來實現對應級別的 HTML 樣式的標題。

# 一級標題          // => <h1>一級標題</h1>
## 二級標題         // => <h2>二級標題</h2>
### 三級標題        // => <h3>三級標題</h3>
#### 四級標題       // => <h4>四級標題</h4>
##### 五級標題      // => <h5>五級標題</h5>
###### 六級標題     // => <h6>六級標題</h6>

一級和二級標題還有一種寫法。

一級標題
=======     // 文本的下面一行爲任意數量個“=”
二級標題
-------     // 文本的下面一行爲任意數量個“-”

列表

Markdown 支持有序列表和無序列表。無序列表使用 *+ 或是 - 作爲列表標記。有序列表使用任意一個數字接一個英文句點作爲列表標記。注意使用時列表標記後要加至少一個空格或製表符。

* 無序列表項1
* 無序列表項2
* 無序列表項3        // 一個無序列表只能使用一種列表標記,不然就會輸出多個無序列表

1. 有序列表項1
2. 有序列表項2
3. 有序列表項3       // 列表標記上使用的數字不會影響輸出結果,不信你全部改成0試試

相對應的 HTML 爲

<ul><li>無序列表項1</li><li>無序列表項2</li><li>無序列表項3</li></ul>
<ol><li>有序列表項1</li><li>有序列表項2</li><li>有序列表項3</li></ol>

如果列表項之間有一個及以上的空行,Markdown 會將列表項用 <p> 標籤包起來。

* 列表項1
* 列表項2

* 列表項3      // 列表項3和列表項2之間有一個空行

相對應的 HTML 爲

<ul><li>列表項1</li><li><p>列表項2</p></li><li><p>列表項3</p></li></ul>

區塊引用

Markdown 標記區塊引用只需要在被引用的內容段落開頭加上 > 即可。你可以選擇只在段落開頭加一個,也可以在每行前面都加一個,效果是一樣的。

> 引用段落第一行
引用段落第二行

或者

> 引用段落第一行
> 引用段落第二行

相對應的 HTML 爲

<blockquote><p>引用段落第一行<br>引用段落第二行</p></blockquote>

區塊引用可以嵌套。根據層次加上不同數量的 > 或者使用其他的 Markdown 語法,例如:

> > 第二層引用
> # 一級標題
> - 列表項1
> - 列表項2

鏈接和圖片

正常鏈接有兩種書寫方式,分別叫做行內鏈接和參考鏈接,當然效果是一樣的。

[鏈接文本](鏈接地址 "提示信息")

或者

[鏈接文本][標記]
[標記]: 鏈接地址 "提示信息"       // 這一行可以寫在文檔的任意地方

相對應的HTML爲

<a href="鏈接地址" title="提示信息">鏈接文本</a>

另外,用尖括號包起來的內容會被 Markdown 視爲自動鏈接。

<https://www.csdn.net/>     // => <a href="https://www.csdn.net/">https://www.csdn.net/</a>

圖片的插入方法類似於正常鏈接,在 ! 後面接一個方括號,裏面放上圖片的替代文字,然後接一個括號,裏面是圖片地址和提示信息。同樣它也允許用參考式書寫。

![替代文本](圖片地址 "提示信息")

或者

![替代文本][標記]
[標記]: 圖片地址 "提示信息"       // 這一行可以寫在文檔的任意地方

相對應的 HTML 爲

<img src="圖片地址" alt="替代文本" title="提示信息">

代碼

要在 Markdown 中建立代碼區塊很簡單,只要簡單地縮進 1 個製表符就可以。一個代碼區塊會一直持續到沒有縮進的那一行。

    function sayHello () {
        return 'Hello'
    }

相對應的 HTML 爲

<pre>
    <code>function sayHello () {
        return 'Hello'
    }</code>
</pre>

如果要標記一小段行內代碼,你可以用 ` 把它包起來

`printf()`      // => <code>printf()</code>

如果要在代碼區段內插入`,你可以用多個`來開啓和結束代碼區段

``(`)``             // => <code>(`)</code>
`` ` ``             // => <code>`</code>
`` `printf()` ``    // => <code>`printf()`</code>

強調文本

Markdown 使用 *_ 作爲標記強調文本的符號,被 *_ 包圍的本文會被轉成用 <em> 標籤包圍,用兩個 *_ 包起來的話,則會被轉成 <strong>

*強調文本*          // => <em>強調文本</em>
_強調文本_          // => <em>強調文本</em>
**強調文本**        // => <strong>強調文本</strong>
__強調文本__        // => <strong>強調文本</strong>

轉義字符

如果你想在 Markdown 中插入一些在語法中有其它意義的字符,就需要對這些字符轉義。例如:

&#35; 這不是標題
\# 這不是標題
&#45; 這不是列表
\- 這不是列表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章