Now,開始吧。。。
區塊元素
段落與換行
一個 Markdown 段落是由一個或多個連續的文本行組成,它的前后要有一個以上的空行(空行的定義是顯示上看起來像是空的,便會被視為空行。比方說,若某一行只包含空格和制表符,則該行也會被視為空行)。普通段落不該用空格或制表符來縮進。
如:
這是一個段落。
長這樣:
這是一個段落。
標題
Markdown 支持兩種標題的語法,類 Setext 和類 atx 形式。這里只講類atx形式。
類 Atx 形式則是在行首插入 1 到 6 個 # ,對應到標題 1 到 6 階,#后跟的文字之間最好有一個以上的空格(有的markdown解析程序不解析無空格的),例如:
# h1
## h2
### h3
#### h4
##### h5
###### h6
長這樣:
h1
h2
h3
h4
h5
h6
區塊引用Blockquotes
Markdown 標記區塊引用是使用類似 email 中用 >
的引用方式。即在每行的最前面加上 >
,或者在整個段落的第一行最前面加。如:
> 這是一行引用
> 這是另一行引用
>這是一段引用。
是啊是啊。
長這樣:
這是一行引用
這是另一行引用
這是一段引用。
是啊是啊。
區塊引用可以嵌套(例如:引用內的引用),只要根據層次加上不同數量的 >
,如:
> 這是第一級引用。
>> 這是第二級引用。
長這樣:
這是第一級引用。
這是第二級引用。
列表
無序列表使用星號、加號或是減號作為列表標記,如:
* red
* green
* blue
---
+ red
+ green
+ blue
---
- red
- green
- blue
長這樣:
- red
- green
- blue
- red
- green
- blue
- red
- green
- blue
有序列表使用數字接著一個英文句點,數字可以無序,為任意數字,如:
5. red
2. green
3. blue
長這樣:
- red
- green
- blue
列表項目可以包含多個段落,每個項目下的段落都必須縮進4個空格或是1個制表符,如:
1. this is a list item
haha
xixi
2. yes, it is.
hehe
長這樣:
-
this is a list item
haha
xixi
-
yes, it is.
hehe
如果要在列表項目內放進引用,那>
就需要縮進,如:
* 一個帶引用的列表:
> 這是一個在列表里的引用
長這樣:
-
一個帶引用的列表:
這是一個在列表里的引用
如果要放代碼區塊的話,該區塊就需要縮進兩次,也就是8個空格或是2個制表符,如:
* 看代碼
function test(){
alert('test');
}
長這樣:
-
看代碼
function test(){ alert('test'); }
有時遇到這樣的寫法:
1990. 我的出生年
會變成這樣:
- 我的出生年
也就是在行首出現數字-句點-空白,又不想被markdown解析,要避免這樣的狀況,可以在句點前面加上反斜杠。
1990\. 我的出生年
然后長這樣:
1990. 我的出生年
ok,終于聊到重點啦:
代碼區塊
和程序相關的寫作或是標簽語言原始碼通常會有已經排版好的代碼區塊,通常這些區塊我們并不希望它以一般段落文件的方式去排版,而是照原來的樣子顯示,Markdown會用<pre>
和<code>
標簽把代碼區塊包起來。
要在markdown中建立區塊代碼很簡單,只要簡單地縮進4個空格或是1個制表符就可以,如:
這是一個普通段落。
alert("這是一段代碼")
長這樣:
這是一個普通段落。
alert("這是一段代碼")
再如:
function say(){
console.log('hello markdown');
}
一個代碼區塊會一直持續到沒有縮進的那一行(或是文件結尾)。
在代碼區塊里,特殊標記會實例化成HTML實體:
<div class="head">
header
</div>
這樣,html代碼就可以以你期望的方式原樣輸出了。
在代碼區塊中,一般的markdown語法也不會被轉換,這樣就可以方便的以markdown語法撰寫markdown語法相關的文件。
分割線
你可以在一行中用三個以上的星號、減號、底線來建立一個分割線,行內不能有其他東西。你也可以在星號或是減號中間插入空格。如:
---
***
*******
___
--------------------
便會生成:
區段元素
鏈接
markdown支持兩種形式的鏈接語法: 行內式和參考式兩種形式。
不管是哪一種,鏈接文字都是用[方括號]來標記。
要建立一個行內式的鏈接,只要在方括號后面緊跟著圓括號并插入網址鏈接即可,如果你還想要加上鏈接的title文字,只要在網址后面,用雙引號把title文字包起來即可,如:
這是一個[示例](http://blog.iwhynot.me/ "title")行內式鏈接.
[這個鏈接](http://blog.iwhynot.me/)沒有標題
長這樣:
這是一個示例行內式鏈接.
這個鏈接沒有標題
參考式的鏈接是在鏈接文字的括號后面再接上另一個方括號,而在第二個方括號里面要填入用以辨識鏈接的標記,之后再定義標記鏈接:
鏈接內容定義形式為:
- 方括號,里面輸入鏈接文字
- 接著一個冒號
- 接著一個以上的空格或制表符
- 接著鏈接的網址
- 選擇性地接著title內容,可以用單引號、雙引號或是括弧包著
舉個栗子:
上網搜索用[Google][1],還是用[百度][2]呢?
[1]: http://google.com/ "Google"
[2]: http://baidu.com/ "百度"
生成:
強調
markdown使用星號(*)和下劃線(_)作為標記強調字詞的符號,被*
或_
包圍的字詞會被轉成用<em>
標簽包圍,用兩個*
或_
包起來的,會被轉成<strong>
,如:
*單星號包住*
_單下劃線包住_
**雙星號包住**
__雙下劃線包住__
生成:
單星號包住
單下劃線包住
雙星號包住
雙下劃線包住
代碼
如果要標記一小段行內代碼,你可以用反引號把它包起來(`
),如:
`span`是內聯元素
生成:
span
是內聯元素
如果要在代碼區段內插入反引號,可以用多個反引號來開啟和結束代碼區段:
``(`)``
生成:
(`)
代碼區段的起始和結束端都可以放入一個空白,這樣就可以在區段的一開始就插入反引號:
`` ` ``
生成:
`
在代碼區段里,&
和方括號會被自動轉成html實體,方便插入html原始碼,如:
這是一個`<span>`標簽
生成:
這是一個<span>
標簽
圖片
跟鏈接一樣,分為<u>行內式</u>和<u>參考式</u>:
行內式的看起來是這樣的:


詳述如下:
- 一個驚嘆號
!
- 接著一個方括號,里面放上圖片的替代文字
- 接著一個小括號,里面放上圖片的網址,最后還可以用引號包住并加上選擇性的'title'文字。
參考式的圖片語法像這樣:
![Alt text][id]
id是圖片參考的名稱,圖片參考的定義方式和鏈接參考一樣:
[id]: url/to/image "optional title attribute"
到目前為止,markdown還沒有辦法指定圖片的寬高,如果需要的話,可以使用普通的<img>
標簽。
其它
自動鏈接
markdown支持以比較簡短的自動鏈接形式來處理網址和電子郵件信箱,只要是用尖括號包起來,markdown就會自動把它轉成鏈接。如:
<http://blog.iwhynot.me>
生成:
郵件的自動鏈接也很類似,只是markdown會先做一個編碼轉換的過程,把文字字符轉成16進位碼的html實體,以糊弄一些不好的郵址收集機器人,如:
<address@example.com>
生成:
反斜杠
markdown可以利用反斜杠來插入一些在語法中有其它意義的符號,如:
\*本來是強調的星號\*
生成:
*本來是強調的星號*
markdown支持以下這些符號前面加上反斜杠來幫助插入普通的符號:
\ 反斜線
` 反引號
* 星號
_ 下劃線
{} 花括號
[] 方括號
() 括弧
# 井號
+ 加號
- 減號
. 英文點號
! 驚嘆號
OK,就這些了,參考Markdown中文版語法說明