Markdown語(yǔ)法-基礎(chǔ)
1. 標(biāo)題
Markdown支持兩種標(biāo)題標(biāo)記語(yǔ)法响禽,我個(gè)人常用的是 #
井號(hào)標(biāo)記,使用很簡(jiǎn)單,在文字前添加 1-6個(gè)#
肪康,分別代表1-6級(jí)標(biāo)題。
簡(jiǎn)潔寫(xiě)法
只在標(biāo)題開(kāi)頭寫(xiě)標(biāo)簽撩穿,以換行為標(biāo)記語(yǔ)法的結(jié)束:
# h1 //井號(hào)標(biāo)記與標(biāo)題需要一個(gè)以上的空格或者一個(gè)水平制表符
## h2
### h3
#### h4
##### h5
###### h6
顯示的寫(xiě)出閉合的標(biāo)記
閉合的 #
井號(hào)標(biāo)記數(shù)量不一定需要和起始相同磷支,起始的井號(hào)數(shù)量已經(jīng)決定了標(biāo)題的級(jí)別,閉合標(biāo)記可以明確標(biāo)題結(jié)束位置食寡;通常標(biāo)題幾乎都是獨(dú)立成行雾狈,閉合寫(xiě)法實(shí)際使用很少:
# h1 # //井號(hào)標(biāo)記與標(biāo)題需要一個(gè)以上的空格或者一個(gè)水平制表符
## h2 ##
### h3 ###
#### h4 ####
##### h5 #####
###### h6 ######
備注:另外還有一種Markdown標(biāo)題標(biāo)記語(yǔ)法,有興趣可以自行查找抵皱,語(yǔ)法書(shū)寫(xiě)并不方便善榛,很少用,所以我覺(jué)得沒(méi)必要在這里列出呻畸。
2. 首行縮進(jìn)移盆、換行及段落
首行縮進(jìn)
由于 Markdown 語(yǔ)法是老外發(fā)明的,他們主要考慮的語(yǔ)言體是英文伤为,英語(yǔ)是沒(méi)有嚴(yán)格的首行縮進(jìn)咒循,字符占位也和漢語(yǔ)不一樣,Markdown 對(duì)中文的首行縮進(jìn)并不太友好绞愚,常用這兩種方法解決這個(gè)問(wèn)題:
把輸入法由半角改為全角叙甸,兩次空格之后就能夠有兩個(gè)漢字的縮進(jìn),不過(guò)這樣做 Markdown 語(yǔ)法轉(zhuǎn)換器有些兼容性并不好爽醋;
-
在段落開(kāi)頭的地方蚁署,使用特殊占位符,然后緊跟著輸入文本即可蚂四,占位符所占空白大小是不一樣的光戈,一般漢語(yǔ)用全角哪痰,英語(yǔ)用半角:
?或??//半角
?或??//全角
?或? //普通空格
## 換行
換行直接敲回車,在有些 Markdown 語(yǔ)法轉(zhuǎn)換器里是不會(huì)換行的久妆,解決辦法是換行后敲至少兩個(gè)空格后再回車換行晌杰;這個(gè)方法其實(shí)也只是解決大部分 Markdown 語(yǔ)法轉(zhuǎn)換器的問(wèn)題,我記得在 Gitlab 在某個(gè)版本的時(shí)候筷弦,這種方法就是不行的肋演;如果遇到這個(gè)情況,終極解決辦法就是在要換行的地方直接指明寫(xiě)上: `<br/>`
## 段落
段落就是連續(xù)行上的文本, 一個(gè)或多個(gè)還行劃分不同的段落烂琴,通常一個(gè)換行或兩個(gè)換行為一個(gè)段落爹殊。
## 3\. 塊引用
- Markdown 使用 `>` 標(biāo)記表示塊引用,以換行結(jié)束塊引用:
這是第一個(gè)塊引用奸绷!
這是第二個(gè)塊引用梗夸!和上一個(gè)塊引用有換行了
- 塊引用可以包含其他 Markdown 標(biāo)記, 包括標(biāo)題、列表和代碼塊等:
包含其他 Markdown 標(biāo)記的塊引用
- 列表1
- 列表2
- 塊引用可以嵌套,即塊引用中包含塊引用, 根據(jù)層次加上不同數(shù)量的`>`標(biāo)記即可:
一級(jí)
二級(jí)
三級(jí)
## 4\. 列表
### 有序列表
使用 "數(shù)字 + `.` 句號(hào)標(biāo)記" 表示有序列表:
- 列表一 //標(biāo)記后與列表文本應(yīng)有一個(gè)以上的空格或者一個(gè)水平制表符
- 列表二
- 列表三
等價(jià)于: - 列表一
- 列表二
- 列表三
等價(jià)于:
<ol>
<li>列表一</li>
<li>列表二</li>
<li>列表三</li>
</ol>
> 備注:如上第二個(gè)列表号醉,使用錯(cuò)誤的列表序號(hào), 最終生成的列表仍然會(huì)以序號(hào)1開(kāi)始反症;這個(gè)特性會(huì)導(dǎo)致在實(shí)際使用列表中遇上一個(gè)場(chǎng)景,在列表與列表之間插入其他的塊級(jí)元素標(biāo)記畔派,標(biāo)簽序號(hào)上下就對(duì)不上號(hào)了铅碍,下面的列表又重新從1開(kāi)始,這個(gè)問(wèn)題在某些 Markdown 語(yǔ)法轉(zhuǎn)換器不會(huì)出現(xiàn)线椰,但就目前 Markdown 的語(yǔ)法定義來(lái)看胞谈,這個(gè)問(wèn)題存在是正常的,解決方案見(jiàn)下面的列表使用的注意事項(xiàng)士嚎。
### 無(wú)序列表
Markdown 使用 `* `星號(hào)標(biāo)記, `+` 加號(hào)標(biāo)記, `-` 連字符標(biāo)記,這三個(gè)標(biāo)記都可以表示無(wú)序列表:
- 列表x //標(biāo)記后與列表文本應(yīng)有一個(gè)以上的空格或者一個(gè)水平制表符
- 列表y
- 列表z
等價(jià)于:
- 列表x
- 列表y
- 列表z
等價(jià)于:
- 列表x
- 列表y
- 列表z
等價(jià)于:
<ul>
<li>列表x</li>
<li>列表y</li>
<li>列表z</li>
</ul>
### 列表使用的注意事項(xiàng)
- 如果有序列表項(xiàng)中包含 `>` 塊引用標(biāo)記呜魄,則塊引用需要縮進(jìn),否則下一個(gè)列表序號(hào)和上一個(gè)就不銜接了:
- 這是一個(gè)帶引用的列表
引用內(nèi)容
- 這是一個(gè)帶引用的列表
引用內(nèi)容
效果:
1. 這是一個(gè)帶引用的列表
> 引用內(nèi)容
2. 這是一個(gè)帶引用的列表
> 引用內(nèi)容
- 如果列表項(xiàng)中有代碼塊, 代碼塊需要雙倍縮進(jìn)8個(gè)空格或者兩個(gè)水平制表符:
- 這是一個(gè)有代碼塊的列表
<code>
- 終極大招莱衩,有些有 Markdown 語(yǔ)法轉(zhuǎn)換器爵嗅,不管怎么小心還是很容易出現(xiàn)有序列表序號(hào)上下不銜接的情況,時(shí)候我們就干脆自己定義序號(hào)笨蚁,不觸動(dòng) Markdown 語(yǔ)法有序列表, 可以通過(guò) `\` 轉(zhuǎn)意標(biāo)記將點(diǎn)號(hào)轉(zhuǎn)意睹晒,如下面這樣的代碼:
3. 列表3
2. 列表2
6. 列表6
效果:
3\. 列表3
2\. 列表2
6\. 列表6
## 5\. 代碼塊
作為程序員寫(xiě) Markdown 文檔,引代碼到文檔是經(jīng)常會(huì)用到的括细,代碼塊分為行內(nèi)代碼塊和多行代碼代碼塊伪很。
### 行內(nèi)代碼塊
使用 ` `` ` 標(biāo)記表示行內(nèi)代碼塊,代碼塊前后各使用一個(gè)標(biāo)記奋单,如下:
Java打印控制臺(tái)日志通過(guò)代碼 System.out.println("Hello!");
實(shí)現(xiàn)
等價(jià)于:
Java打印控制臺(tái)日志通過(guò)代碼<code>System.out.println("Hello!");</code>實(shí)現(xiàn)
效果:
Java打印控制臺(tái)日志通過(guò)代碼 `System.out.println("Hello!");` 實(shí)現(xiàn)
### 多行代碼代碼塊
在要引入的代碼每一行都縮進(jìn)4個(gè)空格或者1個(gè)水平制表符锉试,就可以表示代碼塊,不過(guò)我更喜歡用標(biāo)簽顯得更美觀一些览濒,Markdown 使用` ``` ``` ` 標(biāo)記表示多行代碼塊呆盖,代碼塊前后各使用三個(gè)標(biāo)記拖云,如下::
`
public static void main(String[] args) {
System.out.println("Hello!");
}
、应又、宙项、
等價(jià)于:
<pre><code>
public static void main(String[] args) {
System.out.println("Hello!");
}
</code><pre>
### 引入HTML原始碼
代碼塊中, `<` 和 `>` 會(huì)自動(dòng)轉(zhuǎn)成HTML實(shí)體 `<` 和 `<` 株扛,代碼塊標(biāo)記可以直接引入HTML原始碼尤筐,例如想在文檔中引入一段html代碼:
<div class="footer"> ? 2016 *** </div>
等價(jià)于:
<pre><code><div class="footer">
© 2004 Foo Corporation
</div>
</code></pre>
## 6\. 鏈接
Markdown 鏈接的標(biāo)記語(yǔ)法有"內(nèi)聯(lián)式"和"引用式"兩種形式,還有一種特殊的自動(dòng)鏈接洞就,通常我們程序員內(nèi)聯(lián)式使用較多盆繁,參考式語(yǔ)法一般用在學(xué)術(shù)論文上面。
### 內(nèi)聯(lián)式語(yǔ)法
`![]` 里寫(xiě)鏈接文字旬蟋,`()` 里寫(xiě)鏈接地址, `()` 中的""中可以為鏈接指定title屬性改基,title屬性可加可不加(title屬性的效果是鼠標(biāo)懸停在鏈接上會(huì)出現(xiàn)指定的title文字),鏈接地址與鏈接title前有一個(gè)空格,如下:
歡迎點(diǎn)擊calmsnow的博客
歡迎點(diǎn)擊Atom編寫(xiě)Markdown
等價(jià)于:
歡迎點(diǎn)擊<a >calmsnow的博客</a>
歡迎點(diǎn)擊<a title="Atom編寫(xiě)Markdown">Atom編寫(xiě)Markdown</a>
### 引用式語(yǔ)法
`[]` 里寫(xiě)鏈接文字咖为,緊跟著 `:` 鏈接標(biāo)記,一個(gè)以上的空白符和水平制表符后是鏈接地址稠腊,鏈接地址后打一個(gè)空格躁染,可以為鏈接指定title屬性,title屬性可加可不加(title屬性的效果是鼠標(biāo)懸停在鏈接上會(huì)出現(xiàn)指定的title文字)架忌,如下
我的文章[數(shù)據(jù)結(jié)構(gòu)概述]:https://my.oschina.net/calmsnow/blog/733059
我的文章[Markdown簡(jiǎn)介]:https://my.oschina.net/calmsnow/blog/2875124 "Markdown簡(jiǎn)介"
### 自動(dòng)鏈接
Markdown 支持一種 "自動(dòng)" 創(chuàng)建 URL 地址鏈接的簡(jiǎn)短形式: 只需用 `<>` 尖括號(hào)包圍 URL 地址即可:
http://example.com/
等價(jià)于:
<a >http://example.com/</a>
## 7\. 錨點(diǎn)鏈接
在網(wǎng)頁(yè)中吞彤,錨點(diǎn)就是網(wǎng)頁(yè)內(nèi)的鏈接跳轉(zhuǎn),Markdown的錨點(diǎn)鏈接也是一樣的效果叹放,實(shí)現(xiàn)跳轉(zhuǎn)到本文檔內(nèi)部的某些位置; [] 里寫(xiě)錨點(diǎn)鏈接文字, (#) 里面寫(xiě)鏈接跳轉(zhuǎn)到的字符
跳轉(zhuǎn)到大標(biāo)題
> 備注:有些Markdown語(yǔ)法轉(zhuǎn)化器只支持在標(biāo)題后插入錨點(diǎn)饰恕,其它地方無(wú)效
## 7\. 圖片引入
Markdown 圖片引入和鏈接一樣,有"內(nèi)聯(lián)式"和"引用式"兩種形式井仰,通常我們程序員內(nèi)聯(lián)式使用較多埋嵌,參考式語(yǔ)法一般用在學(xué)術(shù)論文上面。
### 內(nèi)聯(lián)式語(yǔ)法
`![]` 里寫(xiě)圖片的 alt 屬性(圖片Alt的意思是如果圖片因?yàn)槟承┰虿荒茱@示俱恶,就用定義的圖片Alt文字來(lái)代替圖片)雹嗦,`()` 里寫(xiě)圖片地址, `()` 中的 `""` 中可以為圖片指定title屬性,title屬性可加可不加(title屬性的效果是鼠標(biāo)懸停在圖片上會(huì)出現(xiàn)指定的title文字),圖片地址與圖片title前有一個(gè)空格合是,如下:
本地圖片引入:
遠(yuǎn)程圖片引入:

### 引用式語(yǔ)法
`![]` 里寫(xiě)圖片的 alt 屬性(圖片Alt的意思是如果圖片因?yàn)槟承┰虿荒茱@示了罪,就用定義的圖片Alt文字來(lái)代替圖片),緊跟著 `:` 標(biāo)記聪全,一個(gè)以上的空白符和水平制表符后是圖片地址泊藕,圖片地址后打一個(gè)空格,可以為圖片指定title屬性难礼,title屬性可加可不加(title屬性的效果是鼠標(biāo)懸停在圖片上會(huì)出現(xiàn)指定的title文字)娃圆,如下
本地圖片引入:
![]: /path/mk.img
遠(yuǎn)程圖片引入:
![遠(yuǎn)程圖片]: https://oscimg.oschina.net/oscnet/25ab82.jpg "遠(yuǎn)程圖片"
> 備注:Markdown 提供了圖片引入的語(yǔ)法玫锋,但是沒(méi)有指定圖片尺寸的支持,如果需要指定圖片尺寸, 可以直接使用 HTML 標(biāo)簽 `<img>`踊餐。
## 8\. 斜體景醇、加粗、刪除線吝岭、水平線
### 斜體
Markdown 用星號(hào)標(biāo)記 `*` 或下劃線標(biāo)記 `_` 三痰,代表斜體,相當(dāng)于用 HTML 標(biāo)簽 `<em>` 包裹,如下:
斜體
等價(jià)于:
斜體
等價(jià)于:
<em>斜體</em>
### 加粗
Markdown 用兩個(gè)星號(hào)標(biāo)記 `**` 或兩個(gè)下劃線標(biāo)記 `__` 窜管,代表加粗散劫,相當(dāng)于用 HTML 標(biāo)簽 `<strong>` 包裹,如下:
粗體
等價(jià)于:
<strong>double asterisks</strong>
三個(gè)星號(hào)標(biāo)記加粗斜體:
加粗斜體
等價(jià)于:
<strong><em>加粗斜體</em></strong>
### 刪除線
Markdown 用兩個(gè)波浪號(hào)標(biāo)記 `~~`,代表刪除線
刪除線
### 水平線
一行中只有三個(gè)以上的號(hào)標(biāo)記 `*`,或三個(gè)以上連字符標(biāo)記 `-`,或三個(gè)以上下劃線標(biāo)記 `_`,則會(huì)在該位置生成一個(gè)水平線幕帆,并換行获搏,星號(hào)和連字符之間的空格也是允許的,如下都是生成一條水平線:
## 9\. 反斜杠轉(zhuǎn)義
Markdown 將很多字符作為標(biāo)記失乾,那么當(dāng)在Markdown中想原樣輸出這些字符常熙,除了用行內(nèi)代碼塊的方式以外,還可以使用 `\` 反斜杠轉(zhuǎn)義 Markdown 語(yǔ)法標(biāo)記符號(hào)使之成為字面量碱茁,比如:
\
輸出:
` backtick
輸出:`
*
輸出:*
!
輸出:裸卫!
......
## 10\. 表格
Markdown 標(biāo)記表格,對(duì)于簡(jiǎn)單表格纽竣,應(yīng)該是比較方便的墓贿,通常對(duì)于用來(lái)寫(xiě)服務(wù)端接口文檔,多層Json嵌套蜓氨,需要展現(xiàn)出嵌套感的表格聋袋,使用 HTML 標(biāo)簽 `<table>` 會(huì)更方便清晰一些;
語(yǔ)法:第一行為表頭穴吹,列于列之間用`|`豎線標(biāo)記幽勒,第二行分隔表頭和主體部分,列于列之間用`-|`標(biāo)記刀荒,第三行開(kāi)始每一行為一個(gè)表格行代嗤,列于列之間用`|`豎線標(biāo)記;表格單元格默認(rèn)為左對(duì)齊缠借,在`-`右邊加上`:`就右對(duì)齊干毅。
簡(jiǎn)單方式寫(xiě)寫(xiě)法:
學(xué)號(hào) | 姓名 | 分?jǐn)?shù) |
---|---|---|
張三 | 男 | 99 |
李小妹 | 女 | 60 |
王五 | 男 | 85 |
等價(jià)于:
學(xué)號(hào) | 姓名 | 分?jǐn)?shù) |
---|---|---|
張三 | 男 | 99 |
李小妹 | 女 | 60 |
王五 | 男 | 85 |
為表格第二列指定方向:
帳號(hào) | 備注 |
---|---|
calmsnow | 超級(jí)活躍 |
平淡 | 潛水 |
## 11\. 注腳
說(shuō)明注腳最佳的例子就是學(xué)術(shù)論文,在需要添加注腳的文字后加上腳注名字泼返,在文本的任意位置(一般在最后)添加腳注說(shuō)明硝逢;Markdown 使用`[^注腳名字]`添加腳注:
用 Markdown[1] 書(shū)寫(xiě)文檔, 可以轉(zhuǎn)換成 HTML[2]、 PDF[3]
> 備注:有些Markdown語(yǔ)法轉(zhuǎn)換器注腳內(nèi)容與注腳之間必須空一行,不然會(huì)失效渠鸽。上面示例效果如下:<br>
> 用 Markdown[^1] 書(shū)寫(xiě)文檔, 可以轉(zhuǎn)換成 HTML[^2] 叫乌、 PDF[^pdf]
[^1]: Markdown是一種純文本標(biāo)記語(yǔ)言
[^2]: HTML是一種標(biāo)記語(yǔ)言
[^pdf]: 就是pdf,我也不知道怎么描述它
> 還有一些更復(fù)雜有趣的Markdown語(yǔ)法徽缚,以后有時(shí)間再研究了憨奸,很多不太常用,本文就簡(jiǎn)單的總結(jié)歸納常用的Markdown基礎(chǔ)語(yǔ)法