---
# System prepended metadata

title: Markdown 語法
tags: [Markdown]

---

Markdown 是一種輕量級標記式語言，目標是實現「易讀易寫」。  
因此 Markdown 的語法全由標點符號所組成，並經過嚴謹慎選，是為了讓它們看起來就像所要表達的意思。  


## 縮排(Tab)/空格

* Markdown 語法的縮排和空格很嚴謹。
* 一個 Tab 等同於四個空格

## 換行

在文字中輸入的換行會從最終生成的結果中刪除，瀏覽器會根據可用空間自動換行。

## 斷行(強迫換行)

在行尾輸入兩個或兩個以上的空格，加上Enter(return)鍵。

## 標題

	# H1
	## H2
	### H3
	#### H4
	##### H5
	###### H6	


## 引言區塊(Blockquote)

* 只需在整個段落的第一行最前面加上`>`與空格

		> 這是一段非常長的引言區塊，只要在句首使用了正確的符號與空格，你可以持續不間斷的撰寫，整段文字都還是會被包含在引言區塊中。

> 這是一段非常長的引言區塊，只要在句首使用了正確的符號與空格，你可以持續不間斷的撰寫，整段文字都還是會被包含在引言區塊中。

* 引言區塊可以有階層，根據層數加上不同數量的`>`

		> This is a blockquote.
		> 
		>> Block quotes can be nested.
		>
		> Most markdown syntaxes work inside block quotes.
		> Like this ***斜粗體字***

> This is a blockquote.
> 
>> Block quotes can be nested.
>
> Most markdown syntaxes work inside block quotes.
> Like this ***斜粗體字***

* 引言區塊內也可以使用其他的 Markdown 語法，包括標題、清單、程式碼區塊等


## 清單

***無序*** 清單使用`*`、`+`、`-`作為清單標記：

	* One
	* Two
	* Three

等同於：

	- One
	- Two
	- Three

等同於：

	+ One
	+ Two
	+ Three

效果：	

* One
* Two
* Three

***有序*** 清單使用數字接著一個英文句點：

	1. One
	2. Two
	3. Three

效果：

1. One
2. Two
3. Three


## 表格

語法由橫線`-`、豎線`|`、冒號`：`組成：

	| Left Aligned  | Center Aligned  | Right Aligned |
	|:------------- |:---------------:| -------------:|
	| col 3 is      | some wordy text |         $1600 |
	| col 2 is      | centered        |           $12 |
	| zebra stripes | are neat        |            $1 |

效果：

| Left Aligned  | Center Aligned  | Right Aligned |
|:------------- |:---------------:| -------------:|
| col 3 is      | some wordy text |         $1600 |
| col 2 is      | centered        |           $12 |
| zebra stripes | are neat        |            $1 |

語法解析：

* 冒號`：`是用來對齊的 (擺左齊左、擺右齊右、左右都擺就置中)
* 最外圍的豎線`|`不是絕對需要


## 分隔線

必須**獨立一行**用三個或三個以上的星號`*`、減號`-`、底線`_`來建立一個分隔線，前後與行內不能有其他文字。但是可以在中間插入空格。下面每種寫法都可以建立分隔線：
	
	***
	* * *
	---
	- - -
	___
	_ _ _


## 連結/Email

Markdown 支援兩種形式的連結語法：行內(Inline)和參考(Reference style)兩種形式。

### 行內(Inline)

	這是一個[行內連結](https://www.google.com)示範！
這是一個[行內連結](https://www.google.com)示範！

	這是一個帶有標題的[行內連結](https://www.google.com "Google's Homepage")示範！
這是一個帶有標題的[行內連結](https://www.google.com "Google's Homepage")示範！

### 參考(Reference style)

參考項目可以寫在文檔的最後，有點像書內的註解(註腳)、參考文獻。

語法：

	[這是一個參考連結][Arbitrary case-insensitive reference text]
	[arbitrary case-insensitive reference text]: https://github.com/
	
	[參考項目也可以使用數字][1]
	[1]: https://hackmd.io/
	
	直接使用文字對應也可以 [這段文字連到參考項目]
	[這段文字連到參考項目]: http://www.reddit.com
	
	[這是一個對應到 Git 倉儲檔案的相對參考連結](../blob/master/LICENSE)

效果：

[這是一個參考連結][Arbitrary case-insensitive reference text]
[arbitrary case-insensitive reference text]: https://github.com/

[參考項目也可以使用數字][1]
[1]: https://hackmd.io/

直接使用文字對應也可以 [這段文字連到參考項目]
[這段文字連到參考項目]: http://www.reddit.com

[這是一個對應到 Git 倉儲檔案的相對參考連結](../blob/master/LICENSE)

### 還有*自動連結*

用角括號`<>`包起來，Markdown 就會自動把它轉成連結，連結的文字就和連結位置一樣：

	<https://www.w3schools.com/>

<https://www.w3schools.com/>


## 強調

使用星號`*`或底線`_`作為標記強調字詞的符號。

	*斜體字*
	_斜體字_
*斜體字*

	**粗體字**
	__粗體字__
**粗體字**

	***斜粗體字***
	___斜粗體字___
***斜粗體字***


## 程式碼
### 行內(Inline)

使用 back-ticks `` ` `` 將文字包起來(一般鍵盤左上方的第一個鍵)：
	
	這是一個行內程式碼`printf("Hello World")`示範！

這是一個行內程式碼`printf("Hello World")`示範！

### 整段獨立呈現的程式碼

使用成對的三個 back-ticks `` ` `` 頭尾包裹起來，或是使用四個空格縮排。建議使用第一種方法，因為那能讓代碼高亮標示。

語法：

	```javascript=1
	var s = "JavaScript syntax highlighting";
	alert(s);
	```

效果：

```javascript=1
var s = "JavaScript syntax highlighting";
alert(s);
```

## 圖片

同樣也支援行內(Inline)和參考(Reference style)兩種形式。

### 行內(Inline)

語法：

	![Alt text](url/image "標題")
語法解析：

* 一個驚嘆號`!`
* 接著方括號`[]`，裡面放上圖片的替代文字`Alt text`
* 接著中括號`()`，裡面放上圖片的網址
* 最後可以**選擇性**的用雙引號包住並加上標題(將滑鼠移到圖片上會顯示標題)

範例：

	這是一個行內圖片![Google](https://goo.gl/1K82xu "Google Picture")示範！

這是一個行內圖片![Google](https://goo.gl/1K82xu "Google Picture")示範！


### 參考(Reference style)

語法：

	![Alt text][id]
語法解析：

* 一個驚嘆號`!`
* 接著方括號`[]`，裡面放上圖片的替代文字`Alt text`
* 「id」是圖片參考的名稱，圖片參考的定義方式則和內行一樣：

		[id]: url/image  "圖片標題"


## 表情符號

更多的表情符號：https://www.webfx.com/tools/emoji-cheat-sheet/


## 其他
### 1. 跳脫字元( \\ )

利用反斜線`\`來插入一些在語法中有其他意義的符號：

	\*使用跳脫字元取消斜體字效果，顯示星號\*
	
\*使用跳脫字元取消斜體字效果，顯示星號\*

### 2. 註腳(Footnote)

使用參考(Reference style)的形式：

	Markdown 是一種輕量級標記式語言[^lml]，目標是實現「易讀易寫」[^label2]。

Markdown 是一種輕量級標記式語言[^lml]，目標是實現「易讀易寫」[^label2]。

	[^lml]: 輕量級標記式語言(英語：Lightweight Markup Language，簡稱LML)
	[^label2]: Markdown 語法受到一些既有text-to-HTML格式的影響

## 萬用的文件轉換器：Pandoc

[介紹好用工具：Pandoc ( 萬用的文件轉換器 )](https://blog.miniasp.com/post/2018/10/06/Useful-tool-Pandoc-universal-document-converter.aspx)


## 參考
1. [HackMD 使用教學](https://hackmd.io/c/tutorials-tw/%2Fs%2Ftutorials-tw)

[^lml]: 輕量級標記式語言(英語：Lightweight Markup Language，簡稱LML)
[^label2]: Markdown 語法受到一些既有text-to-HTML格式的影響