塊級元素
標題
Markdown 支持兩種形式的標題, [Setext] [1] 和 [atx] [2].
Setext 樣式的標題使用的等號來表示一級標題, 使用連字符表示二級標題. 例如:
This is an H1
=============
This is an H2
-------------
任意長度的?=?或?-?都是可以的.
Atx 樣式的標題每行開頭使用 1-6 井號, 對應 1-6 級標題. 例如:
# This is an H1
## This is an H2
###### This is an H6
塊引用
Markdown 使用 email 樣式的?>?字符作為塊引用. 如果你熟悉 email 消息中的引用段落, 那么你同樣可以在 Markdown 中創(chuàng)建塊引用. 最好對引用文本采取強制換行并在每一行行首放一個?>?:
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
>
> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
> id sem consectetuer libero luctus adipiscing.
Markdown 中可以簡便地只在每一個需要強制換行的段落的首行前面加上一個?>?:
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.Vestibulum enim wisi, viverra nec, fringillain, laoreet vitae, risus.> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisseid sem consectetuer libero luctus adipiscing.
塊引用可以嵌套 (例如, 塊引用中包含塊引用) , 只需添加額外層級的?>?即可:
> This isthefirstlevelofquoting.
>
> > This is nested blockquote.
>> Backtothefirstlevel.
塊引用可以包含 Markdown 元素, 包括標題, 列表和代碼塊:
>## This is a header.
>
>1.Thisisthefirstlistitem.
>2.Thisisthesecondlistitem.
>
> Here'ssomeexample code:
>
> ? returnshell_exec("echo $input | $markdown_script");
任何合適的文本編輯器都應該可以很方便的創(chuàng)建 email 樣式的塊引用. 例如, 用 BBEdit 就可以選取文本然后從 'Text' 菜單中選擇 'Increase Quote Level'.
列表
Markdown 支持有序列表和無序列表.
無序列表使用星號, 加號, 和連字符 -- 這些符號是可互換的 -- 最為列表標記:
*? Red
*? Green
*? Blue
等價于:
+? Red
+? Green
+? Blue
以及:
-Red
-Green
-Blue
有序列表使用數(shù)字加句號:
1.? Bird
2.? McHale3.? Parish
如果列表項中包含塊注釋 , 塊注釋標記?>?需要縮進:
* A list item with a blockquote:
? ? > This is a blockquote
? ? > inside a list item.
如果列表項中有代碼塊, 代碼塊需要?雙倍?縮進-- 8 個空格或者兩個水平制表符:
*? A listitemwithacode block: ? ? ? ?
? ? ? ? ? ? ? ? <code goes here>
有時候無意中出發(fā)有序列表, 如下面這樣的代碼:
1986. Whatagreat season.
即使, 如果一行開頭滿足?number-period-space?模式. 可以通過轉義點號來避免這種情況:
1986\. Whatagreat season.
代碼塊
預格式化的代碼塊用于輸出編程語言和標記語言. 不同于普通段落, 代碼塊中的行會被原樣呈現(xiàn).? MarkDown 會用
<pre> 和 <code> 標簽包圍代碼塊
要在 Markdown 中插入代碼塊, 只需要將每一行都縮進 4 個空格或者 1 個水平制表符. 例如, 下面的輸入:
This is a normal paragraph:
? ? This is a code block.
只有一級縮進 -- 4 個空格或者 1 個水平制表符 -- 會從代碼塊中的每一行中移除. 例如:
水平線
如果一行中只有三個以上的連字符, 星號, 或者下劃線則會在該位置生成一個 <hr />?標簽. 星號和連字符之間的空格也是允許的. 下面的例子都會生成一條水平線:
* *?
*********
- - -
---------------------------------------
內聯(lián)元素
鏈接
Markdown 支持兩種鏈接形式:?內聯(lián)?和?引用.
這兩種形式下鏈接文本的定界符都是 [中括號].
要創(chuàng)建內聯(lián)鏈接, 只需在鏈接文本的右括號后面緊接一對圓括號. 圓括號里面放所需的 URL 鏈接, 還可以放一個?可選?的鏈接標題, 標題要用引號包圍. 例如:
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.
將會生成:
如果是引用相同服務器下的本地資源, 還可以用相對路徑:
See my [About](/about/) page for details.
引用類型的鏈接放在第二個中括號里, 括號里面放鏈接標簽:
This is [an example][id] reference-style link.
兩個中括號之間可以有空格:
Thisis[anexample] [id]reference-stylelink.
接下來, 在文檔中的任意位置, 你可以像下面那樣定義鏈接標簽, 需要單獨占一行:
[id]: http://example.com/? "Optional Title Here"
也就是:
????方括號中包含鏈接標識符 (可以用三個以上的空白符來添加縮進);
????跟著是冒號;
????跟著是一個以上的空白符和水平制表符;
????跟著是鏈接的 URL;
????跟著是可選的標題屬性, 可以用單引號, 雙引號, 或者圓括號包圍.
以下三個鏈接的定義是等價的:
[foo]: http://example.com/ "Optional Title Here"
[foo]: http://example.com/ 'Optional Title Here'
[foo]: http://example.com/ (Optional Title Here)
注意:?Markdown.pl 1.0.1 有一個已知的問題就是不能用單引號來包圍鏈接標題.
URL 可以用尖括號包圍:
[id]: <http://example.com/>? "Optional Title Here"
對于較長的 URL , 為了美觀起見, 你可以另起一行放置鏈接標題, 需要在前面加額外的水平制表符或空格作為內間距:
[id]:http://example.com/longish/path/to/resource/here
????????"Optional Title Here"
鏈接定義只存在于 Markdown 處理期間, 而不會在最終的 HTML 出現(xiàn).
鏈接定義的名稱可以包含字母, 數(shù)字, 空格, 和標點符號 -- 但它們?不是?大小寫敏感的. 例如, 下面兩個鏈接是等價的:
[link text][a]
[link text][A]
隱含鏈接名稱?使你可以忽略鏈接名稱, 這時鏈接文本本身被用于鏈接名稱. 只用一對空的中括號就可以了 -- 例如, 要鏈接 "Google" 這個詞到 google.com 網(wǎng)站, 你只用這樣寫:
[Google][]
同時這樣定義鏈接:
[Google]: http://google.com/
由于鏈接名稱可以包含空格, 甚至鏈接文本中包含多個單詞時這種快捷方式也是可行的:
Visit [Daring Fireball][] for more information.
鏈接定義如下:
[Daring Fireball]: http://daringfireball.net/
鏈接定義可以放在 Markdown 文檔的任意位置. 一般傾向于將它們直接放在引用位置下面, 當然, 也可以像底部注釋那樣, 將它們都放在文檔底部.
下面是一個引用鏈接實例:
I get 10timesmoretrafficfrom
[Google] [1]thanfrom[Yahoo] [2]or[MSN] [3].
?[1]:http://google.com/"Google"
[2]:http://search.yahoo.com/"Yahoo Search"
[3]:http://search.msn.com/"MSN Search"
要使用默認鏈接, 可以這樣寫:
I get 10 times more traffic from [Google][] than from
[Yahoo][] or [MSN][].?
?[google]: http://google.com/? ? ? ? "Google" ?
[yahoo]:? http://search.yahoo.com/? "Yahoo Search" ?
[msn]:? ? http://search.msn.com/? ? "MSN Search"
引用連接的意義不在于更容易書寫, 而在于使得文檔更易于閱讀. 比較上面兩個例子: 使用引用鏈接的段落只有 81 個字符; 使用內聯(lián)鏈接的段落有 176 個字符; 而原始的 HTML 有 234 個字符. 在原始的 HTML 中, 標記比文本還多.
使用 Markdown 的引用鏈接, 源碼更接近與最終的輸出, 就像瀏覽器中呈現(xiàn)的樣子. 通過把標記元數(shù)據(jù)移出段落, 你可以不用打斷行文而直接添加鏈接.
強調
Markdown 將星號 (*) 和下劃線 (_) 作為強調標記. 用?*?或者?_?包裹的文本將會用 HTML??標簽包裹; 雙?*?或者?_?將會用 HTML??標簽包裹. 例如, 下面的輸入:
*single asterisks*
_single underscores_
**double asterisks**
__double underscores__
會輸出:
single asteriskssingle?
underscores
double asterisks
double underscores
兩種形式可以任意選擇, 但是同一片段的開關標記必須一致.
強調可以用在單詞中:
un*frigging*believable
但是如果?*?或者?_?兩邊都有空格, 則會被視為星號和下劃線的字面量.
要使用星號和下劃線字面量, 需要進行轉義, 以區(qū)別于強調:
\*thistextissurroundedbyliteral asterisks\*
代碼
要輸出一個代碼片段, 需要使用重音符號 (`). 不同于預格式的代碼塊, 代碼片段只是在普通段落中標識出代碼. 例如:
Usethe `printf()` function.
會生成:
Use the
printf()
function.
要在代碼片段中包含字面量的重音符號, 可以使用多個重音符號作為起始和結束標記:
``There isaliteral backtick (`)here.``
會生成:
There is a literal backtick (`) here.
包含代碼片段的重音符號可以包含空格 -- 起始標記后一個, 結束標記前一個. 這使你可以在代碼片段開始和結束位置使用重音符號的字面量:
A single backtickinacodespan: `` ` ``
A backtick-delimited stringinacodespan: `` `foo` ``
圖片
通常, 要用 "原生" 的語法在純文本格式中插入圖片是很困難的.
Markdown 使用了類似鏈接的語法來插入圖片, 包含兩種形式:?內聯(lián)?和?引用.
內聯(lián)圖片語法如下:
![Alt text](/path/to/img.jpg)
![Alt text](/path/to/img.jpg "Optional title")
也就是:
????一個感嘆號:?!;
????緊跟著一對方括號, 包含了圖片的?alt?屬性;
????緊跟著一對圓括號, 包含了圖片的 URL 或者路徑, 以及一個可選的用單引號或雙引號包裹的?title?屬性.
引用圖片語法如下:
????![Alt text][id]
"id" 是圖片引用的名稱. 圖片引用使用鏈接定義的相同語法:
[id]: url/to/image "Optional title attribute"