[Markdown]語法全解——來自官網

綜述


設計哲學

Markdown設計之初就是奔著易讀易寫的目標去的。
然而,我們對于可讀性是更加注重的。一份Markdown文檔應該可以像純文本一樣被出版而不是看起來像一些標簽標記的文檔。盡管Markdown語法已經被現有的文本轉換處理器所影響,例如Settext,atx,Textile,reStructuredText,Grutatext,和EtText

為了達到這個目的,Markdown的語法完全由精心挑選的標點符號組成。

INLINE HTML

Markdown設計的目的是為了幫助在網絡上寫作。
Markdown不是HTLM的替代,甚至和它相去甚遠。它的語法集非常的小,僅僅是HTML標簽的一個很小的子集。此外,Markdown也不是為了創造一種便捷插入HTML標簽的語法。在我看來,HTML TAGs已經很容易插入了。HTML是一種出版格式(publishing format),Markdown是一種寫作格式(writing format)。
對于任何不被Markdown語法包括的標記,你可以簡單的應用HTML本身。也沒有必要聲明你要開始從Markdown轉換到HTML了。只需要使用即可。
唯一的限制就是塊級元素—例如<div>,<table>,<pre>,<p>等等—必須用空行和周圍的內容分開。并且,開始和結束標簽不能 用空格和tab進行縮進。

例如,為了增加一個HTML table。

這是一個常規的段落。
<table>
    <tr>
        <td>Foo</td>
    </tr>
</table>
這是另外一個常規的段落。

注意Markdown塊級格式語法不會處理塊級元素內部的HTML標簽。例如,你不能用Markdown格式(emphasis)在一個HTML塊內部。

span級元素-例如<span>,<cite>,或者<del>—可以被用在Markdown段落的任何地方,列表,或者標題。如果你想,你甚至可以用HTML 標簽代替Markdown格式。例如,如果你更喜歡用HTML <a> 或者 <img> 標簽代替Markdown的鏈接或者圖片語法,請便。

Automatic Escaping for Special Characters(特殊字符自動轉義)

在HTML中有兩個字符,它們應該被特殊對待:< 和 &。< 被用作開始標簽,& 被用作代指HTML實體字符。如果你想用它們作為原義字符,你必須轉義它們為實體。
& 對于網絡作者可能比較煩惱。如果你想要寫下 AT&T。你必須寫作 AT&amp;T。你甚至需要轉義 在URL中的&。因此,如果你想要寫作:
http://images.google.com/images?num=30&q=larry+bird
你應該編碼這個URL為:
http://images.google.com/images?num=30&amp;q=larry+bird
在你的a標簽href屬性中,毫無疑問,這很容易被忘記。并且很可能是最常見的錯誤。
Markdown允許你自由的去使用這些字符,它已經做好所有的轉義操作。如果你用一個 & 作為一個HTML實體。它應該使用它本身,而不是轉變成 &amp;
因此,如果你想要在你的文章中包括一個版權符號,你可以這樣寫&copy; ?
Markdown并不會對它做什么。但是,如果你作:AT&T。Markdown將轉換為: AT&amp;T

Block Elements(塊級元素)


段落和換行

一個段落可能就是被空行分開的一行或者多行連續的文本。正常的段落不應該用空格和tab進行縮進。

標題

Markdown支持兩種格式的標題: Settextatx
Setext-style標題是用等于號“下劃線”(作為一級標題)以及虛線符號作為二級標題。
例如:
This is an H1
========

This is an H1
========

This is an H2

This is an H2
-----------

任意數量的 ='s和-'s 都可以工作。
Atx-style標題用1-6個#在一行的開始,對應于標題等級的1-6級。例如:

# This is an H1

## This is an H2

### This is an H3

可選的是,你可以選擇atx-style格式的標題。這種格式比較漂亮。你可以選擇任意一種你覺得比較好看的格式。這個閉合 # 不是必須要求的。它的標題等級完全取決于開始的 # 數量。

Blockquotes

Markdown用一種email-style > 字符來作為引用。
例如:

> 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.

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, fringilla in, laoreet vitae, risus.

Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
id sem consectetuer libero luctus adipiscing.

同時,引用也可以被嵌套(例如,引用中的引用)通過繼續增加一個 > :

This is the first level of quoting.

This is nested blockquote.

Back to the first level.

引用也可以包含其他的Markdown元素,例如標題,列表,代碼塊:

This is a header.

  1. This is the first list item.
  2. This is the second list item.

Here's some example code:

return shell_exec("echo $input | $markdown_script");

Lists

Markdown支持有序和無序列表。
無序列表使用 *,+,-

* Red
* Green
* Blue

等價于
+ Red
+ Green
+ Blue

和
- Red
- Green
- Blue

有序列表用數字+.號表示。

1. Bird
2. McHale
3. Parish

應該注意的一點是你用來標記這個列表的數字對于列表沒有影響。也就是說,你可以用以下的標記生產同樣的效果:

1.  Bird
1.  McHale
1.  Parish
或者,甚至
3. Bird
1. McHale
8. Parish

列表元素也許由幾行組成,每個子段落都必須縮進四個空格或者一個tab。

1.  This is a list item 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.

2.  Suspendisse id sem consectetuer libero luctus adipiscing.

也許每行進行縮進會使得看起來比較漂亮,但是Markdown也允許你偷懶。

*   This is a list item with two paragraphs.

    This is the second paragraph in the list item. You're
only required to indent the first line. Lorem ipsum dolor
sit amet, consectetuer adipiscing elit.

*   Another item in the same list.

為了讓引用可以位于列表元素內,引用 >需要被縮進。

*   A list item with a blockquote:

    > This is a blockquote
    > inside a list item.

為了讓代碼塊在一個列表內,這個代碼塊也需要被縮進二倍—8個空格或者兩個tabs。

CODE BLOCK

Markdown包裹一個代碼塊用<pre>和<code>標簽。
為了在Markdown中生產一個代碼塊,簡單的縮進每一行快至少4空格或者一個tab。
This is a normal paragraph:

This is a code block.

Horizontal Rules

你可以生產水平線通過三個或者更多的 `- * _"。僅僅有它們自己在一行。如果你愿意,你也可以在其中加入空格。






Span Elements

Links

Markdown 支持兩種格式的鏈接: 行級和引用
在這兩種格式中,鏈接的文本都位于方括號內。
為了創建一個行級鏈接,按照這個格式創建 鏈接文本
你也可以使用相對引用路徑。
第二種鏈接格式就像以下的:

This is [ an example][id] reference-style link.

你也可以用空格分開這一組方括號。

This is [an example] [id] reference-style link.
然后,在文檔的任何位置,你可以像這樣定義你的鏈接標簽。
[id]: 鏈接 "title"
以下三種定義都是等價的:
[foo]: http://example.com/ "Optional Title Here"
[foo]: http://example.com/ 'Optional Title Here'
[foo]: http://example.com/ (Optional Title Here)

例如你也可以把鏈接名字用作這個標識符。

[google][]
然后,你可以這樣定義鏈接:
[google]: http://google.com

Emphasis

Markdown 把 * 和 _處理為強調。如果一個文本被*或者_包裹,那么他將被處理為斜體;如果被兩個*或者_包裹,那么它將被處理為粗體.

CODE

用()來定義行內代碼塊。 如果你想在代碼塊內包含,那么你可以使用多個`來作為開始和閉合定界符。

Use the `printf()` function.
``There is a literal backtick (`) here.``
A single backtick in a code span: `` ` ``

A backtick-delimited string in a code span: `` `foo` ``


#### IMAGE

圖片的格式和鏈接完全一樣,只不過在鏈接格式的前面加上!。
例如:
Alt text
Alt text
Alt text
Alt text

***
翻譯真累,不少單詞還不認識,而且翻譯的的確不好,有些句子不知道怎么對應。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容