原文地址 shukebeta翻譯
概述
哲學(xué)
Markdown 的目標(biāo)是易讀易寫,。
Markdown強調(diào)可讀性高于一切。一份Markdown格式的文檔應(yīng)該能直接以純文本方式發(fā)布,,而不致一眼看過去滿眼都是標(biāo)簽和格式化指令,。Markdown的語法確實受了幾種現(xiàn)有的text轉(zhuǎn)HTML過濾器影響--包括 Setext, atx, Textile, reStructuredText,Grutatext, 和 EtText -- 其中對Markdown語法影響最大的單一來源是純文本的Email格式。
為實現(xiàn)這一目標(biāo),,Markdown的語法幾乎全部由標(biāo)點符號構(gòu)成,,這些標(biāo)點符號都是精心挑選而來,盡量做到能望文生義,。如星號括著一個單詞(Markdown中表示強調(diào))看上去就像 *強調(diào)*,。Markdown的列表看上去就像列表;Markdown的引文就象引文,,和你使用email時的感覺一樣,。
內(nèi)嵌HTML
Markdown的語法為“方便地在網(wǎng)上寫作”這一目標(biāo)而生。
Markdown不是HTML替代品,,也不是為了終接HTML,。它的語法非常簡單,只相當(dāng)于HTML標(biāo)簽的一個非常非常小的子集,。它并非是為了更容易輸入HTML標(biāo)簽而創(chuàng)造一種新語法,。在我看來,HTML標(biāo)簽已經(jīng)夠容易書寫的了,。Markdown的目標(biāo)是讓(在網(wǎng)上)讓讀文章,、寫文章、修改文章更容易,。HTML是一種適合發(fā)表的格式,;而Markdown是一種書寫格式。正因如此,,Markdown的格式化語法僅需解決用純文本表達的問題,。
對Markdown語法無法支持的格式,你可以直接用HTML,。你不需要事先聲明或者使用什么定界符來告訴Markdown要寫HTML了,,你直接寫就是了。
唯一的限制是那些塊級HTML元素 -- 如 <div> ,<table> , <pre> , <p> 等等 -- 必須使用空行與相鄰內(nèi)容分開,,并且塊元素的開始和結(jié)束標(biāo)簽之前不要留有空格或TAB,。Markdown足夠聰明不會添加額外的(也是不必要的)<p> 標(biāo)簽包住這些塊元素標(biāo)簽。
下面這個例子,,在一篇Markdown文章中添加了一個HTML表格: 這是一個普通的段落,。
<table>
<tr>
<td>Foo</td>
</tr>
</table>
這是另一個普通的段落。
注意一點,,不要在塊級HTML元素內(nèi)使用Markdown格式化命令,,Markdown不會處理它們。比如你不要在一個HTML塊中使用 *emphasis* 這樣的Markdown格式化命令,。
行內(nèi)HTML標(biāo)簽 -- 如 <span> , <cite> , 或 <del> -- 在一個Markdown段落里,、列表中、或者標(biāo)題中--隨便用。 如果需要,,你甚至可以用HTML標(biāo)簽代替Markdown格式化命令,。比方你可以直接用HTML標(biāo)簽 <a> 或 <img> 而不使用Markdown的鏈接和圖片語法,隨你的便,。
不同于這些塊級HTML元素,,在HTML行內(nèi)元素內(nèi)的Markdown語法標(biāo)記會被正確處理。
自動轉(zhuǎn)換特殊字符
在HTML中,,有兩個字符需要特殊對待:< 和 & ,。< 用于標(biāo)簽開始,& 用于標(biāo)識HTML實體,。如果打算把它們當(dāng)成普通字符,,你必須使用反引號轉(zhuǎn)義它們,如< 和& ,。
對一些互聯(lián)網(wǎng)作家來說,,& 符號特別使人煩惱。如果你打算寫'AT&T',,你就得寫 'AT&T ',。甚至在URL中也得想著轉(zhuǎn)義& 符號。比方你打算寫: http://images.google.com/images?num=30&q=larry+bird
你就得在A標(biāo)簽中把href 屬性中的URL編碼成: http://images.google.com/images?num=30&q=larry+bird
不用說,,這很容易忘,。這往往是那些良構(gòu)HTML站點中最容易出錯的地方。
在Markdown中,,你盡管自然的使用這些字符,,只需要關(guān)心那些必要的轉(zhuǎn)義。如果使用在HTML實體中使用&符號,,它會保持不變,;而在其它場合,它會轉(zhuǎn)換成& ,。
所以,,如果你打算在文章中書寫版權(quán)符號,你可以這樣寫: ©
Markdown不會碰它,。然而如果你書寫 AT&T
Markdown就會把它翻譯成: AT&T
類似的,,既然Markdown支持內(nèi)嵌HTML,如果你使用< 作為HTML標(biāo)簽定界符,,Markdown就會把它們當(dāng)成HTML標(biāo)簽定界符,。可是如果你書寫: 4 < 5
Markdown就會把它翻譯成: 4 < 5
然而,,在Mardown代碼行內(nèi)標(biāo)記和塊級標(biāo)記之中,,< 和& 始終會被自動編碼,。這使得在Markdown文件中書寫HTML代碼更容易.(相對于純HTML。如果想在純在純HTML里貼一段HTML代碼,,那才是糟糕透頂,,必須對代碼中的每一個< 和& 都轉(zhuǎn)義才成。)
塊級元素
段落和換行
一個段落由一行或多個相關(guān)文本行構(gòu)成,。段落之間用一個或多個空行分隔,。(一個空行就是一個看上去什么也沒有的行--如果一行什么也沒有或者只有空格和TAB都會被視為空行)正常的段落不要以空白或TAB字符開始。
一行或多個相關(guān)文本行意味著Markdown支持“硬折行”,。這一點與其它text轉(zhuǎn)HTML的程序完全不同(包括Moveable Type的“Convert Line Breaks”選項),它們會將段落中的每一個換行符轉(zhuǎn)換成<br /> 標(biāo)簽,。
如果你確實需要使用Markdown插入一個<br /> 換行符,,只需要在每一行的末尾以兩個或更多個空格符號結(jié)束,然后再打回車鍵,。
沒錯,,在Markdown里生成一個<br /> 稍稍有一點麻煩,但那種簡單的“把每一個換行符都轉(zhuǎn)換成<br /> 規(guī)則”并不適用于Markdown,。Markdown Email風(fēng)格的 blockquoting 和 multi-paragraph list items更好用 -- 并且更美觀 -- 在你用換行符對其格式化時,。
Markdown 支持兩種風(fēng)格的標(biāo)題,Setext 和 atx.
Setext-風(fēng)格的一級標(biāo)題下面一行使用等號符號,,二級標(biāo)題下面使用連字符符號,,例如: 這是一個一級標(biāo)題
=============
這是一個二級標(biāo)題
-------------
至少有一個= 和- 就能正常工作。
Atx-風(fēng)格的標(biāo)題在每行的開頭使用1-6個井號字符,,分別對應(yīng)標(biāo)題級別1-6,。例如: # 這是一級標(biāo)題
## 這是二級標(biāo)題
###### 這是六級標(biāo)題
如果愿意, 你也可以 "結(jié)束" atx-風(fēng)格的標(biāo)題。這純粹是美觀考慮--如果你覺得這樣會看上更舒服些的話,。結(jié)束用的井號個數(shù)隨便,,不必與起始井號數(shù)量相同 (起始井號的數(shù)量決定標(biāo)題級別): # 這是一級標(biāo)題 #
## 這是二級標(biāo)題 ##
### 這是三級標(biāo)題 ######
引用塊
Markdown使用Email風(fēng)格的 > 字符引用塊。如果你熟悉Email中的引用塊,,你就知道在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.
(如果覺得每行寫一個> 太累,,)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元素,,如標(biāo)題,、列表和代碼塊: > ## 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");
是個象樣的文本編輯器都能實現(xiàn)Email風(fēng)格的引用。比如在BBEdit里,,你就可以選中一些文字之后從Text菜單里選擇引用級別,。
列表
Markdown 支持有序列表和無序列表
無序列表可使用星號,、加號和連字符(這幾個符號是等價的,你喜歡哪個就用哪個)作為列表標(biāo)記: * Red
* Green
* Blue
等同于: + Red
+ Green
+ Blue
也等同于: - Red
- Green
- Blue
有序列表則使用數(shù)字加英文句點: 1. Bird
2. McHale
3. Parish
有一點需要注意,,你在列表中輸入的標(biāo)記數(shù)字并不會反映到Markdown輸出的HTML之中,。上面這個列表Markdown會輸出為: <ol>
<li>Bird</li>
<li>McHale</li>
<li>Parish</li>
</ol>
即使你寫成下面這樣: 1. Bird
1. McHale
1. Parish
甚至這樣: 3. Bird
1. McHale
8. Parish
都會得到一模一樣(但正確的)輸出。要點在于,,如果你愿意,,就在你的Markdown有序列表里順序使用數(shù)字(這樣源代碼里的順序和生成的順序會一致),如果你希望省點兒事,,你就不用費心(去手工編號),。
如果你打算偷懶,記住列表的第一行使用數(shù)字 1,。以后Markdown或許會支持有序列表從任意數(shù)字開始(譯者注:這兒和前面的例子有點矛盾,,原文如此)。
列表標(biāo)記通常從左邊界開始,,至多可以有三個空格的縮進,。列表標(biāo)記之后至少要跟一個空格或TAB。
為了讓列表看起來美觀,,你可以使用TAB縮進列表項內(nèi)容,,使其整齊: * 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.
不過如果你很懶,下面這樣也行: * 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就會在HTML輸出中使用<p> 標(biāo)簽包裹列表項,。比如: * Bird
* Magic
生成的HTML如下: <ul>
<li>Bird</li>
<li>Magic</li>
</ul>
而這個: * Bird
* Magic
生成的HTML是這樣: <ul>
<li><p>Bird</p></li>
<li><p>Magic</p></li>
</ul>
列表項有可能由多個段落組成,列表項的每個后續(xù)段落必須縮進至少4個空格或者一個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.
像上面這樣縮進后續(xù)段落的每一行看起來很美觀(但稍有些麻煩),,如果你比較懶(和我一樣),,沒問題,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個空格或者兩個TAB: * A list item with a code block:
<code goes here>
有時候不小心會觸發(fā)一個有序列表,比方在寫類似下面這樣的東西時: 1986. What a great season.
換言之,, 以數(shù)字+句點+空格 序列起始的行會觸發(fā)有序列表,。為避免此情況,要對句點符號進行轉(zhuǎn)義: 1986\. What a great season.
代碼塊
我們經(jīng)常在寫有關(guān)編程或標(biāo)記語言源代碼時用到預(yù)格式化的代碼塊,。不像格式化普通段落,,代碼塊中的行會按字面進行解釋。Markdown對代碼塊同時使用<pre> 和 <code> 標(biāo)簽包裹:
在Markdown中要生成一個代碼塊,,只需要在代碼塊內(nèi)容的每一行縮進至少四個空格或者一個TAB,。比如: This is a normal paragraph:
This is a code block.
Markdown會生成: <p>This is a normal paragraph:</p>
<pre><code>This is a code block.
</code></pre>
Markdown會從生成的代碼塊中刪除一級縮進 -- 4個空格或者1個TAB??聪旅孢@個例子: Here is an example of AppleScript:
tell application "Foo"
beep
end tell
會得到: <p>Here is an example of AppleScript:</p>
<pre><code>tell application "Foo"
beep
end tell
</code></pre>
代碼塊在遇到?jīng)]有縮進的一行,,或者文件末尾時自動結(jié)束,。
在代碼塊中,& 符號和< ,、> 會自動轉(zhuǎn)換成HTML實體,。因此在Markdown中包含HTML源代碼只是小菜一碟--粘貼進去,縮進一下,。剩下的臟活累活Markdown自會處理,。看下面這個例子: <div class="sample_footer">
© 2004 Foo Corporation
</div>
Markdown會生成:
Markdown不會解析代碼塊中的Markdown標(biāo)記,。如代碼塊中的星號就是星號,,失去了它原來的Markdown含義。這意味著你能夠使用Markdown編寫Markdown自己的語法教程,。(就象這篇文章一樣),。
水平線
如果在一行里只放三個或更多個連字符,或星號或下劃線,,你就會得到一個水平線標(biāo)記(<hr /> )。下面每一行都會得到一個水平線: * * *
***
*****
- - -
---------------------------------------
行內(nèi)元素
鏈接
Markdown 支持兩種風(fēng)格的鏈接: 行內(nèi)鏈接 和 引用鏈接.
兩種風(fēng)格的鏈接,,鏈接文本都放在中括號之內(nèi)[square brackets],。
要生成一個行內(nèi)鏈接,在鏈接文本之后緊跟用一對小括號,。小括號里放鏈接地址和可選的的鏈接title,。如果提供鏈接title的話,鏈接title要用引號包起來,。例如: 這是一個 [an example](http:/// "Title") 行內(nèi)鏈接,。
[這個鏈接](http:///) 沒有title屬性。
Markdown會生成: <p>This is <a href="http:///" title="Title">
an example</a> inline link.</p>
<p><a href="http:///">This link</a> has no
title attribute.</p>
如果你打算引用一個本地資源或者同一站點的資源,,可以使用相對路徑: 如果想進一步了解我,,請參閱我的 [關(guān)于我](/about/) 頁。
引用風(fēng)格的鏈接,,在鏈接文本之后緊跟又一對中括號,。這對中括號里放的是該鏈接的標(biāo)識符(可以理解為別名): 這是一個引用型鏈接 [示例][id]。
如果你嫌棄兩對中括號過于親密,,Markdown允許你在兩對中括號之間放一個空格: 這是一個引用型鏈接 [示例] [id],。
然后,我們可以在文檔的任意位置,,像下面這樣定義鏈接標(biāo)識與鏈接的對應(yīng)關(guān)系(一行一個鏈接): [id]: http:/// "Optional Title Here"
即:
- 中括號內(nèi)放鏈接標(biāo)識符(行前可選縮進,,至多不超過三個空格);
- 之后緊跟一個冒號,;
- 再后面是一個或多個空格(TAB也行),;
- 接下來是鏈接URL,;
- 最后面是可選的用雙引號或單引號或小括號括起來的鏈接title。
下面三種鏈接定義方式是等價的: [foo]: http:/// "Optional Title Here"
[foo]: http:/// 'Optional Title Here'
[foo]: http:/// (Optional Title Here)
注意: Markdown.pl 1.0.1 版本有一個已知的bug,,用單引號作為鏈接title的定界符會出問題,。
至于鏈接URL,還支持使用一對可選的尖括號包裹起來: [id]: <http:///> "Optional Title Here"
你也可以將鏈接的title屬性放在下一行并使用額外的空格或TAB填充,,這樣較長的URL會比較美觀: [id]: http:///longish/path/to/resource/here
"Optional Title Here"
鏈妝定義僅供Markdown解析器使用,。最終輸出的HTML當(dāng)中不會包含鏈接定義。
鏈接標(biāo)識符可以由字母,、數(shù)字,、空格和標(biāo)點符號組成--不區(qū)分大小寫。下面這兩個鏈接: [link text][a]
[link text][A]
是等價的,。
隱式鏈接標(biāo)識 允許我們省略鏈接標(biāo)識,,這時鏈接文本本身就是鏈接標(biāo)識。在鏈接文本之后加一對空的中括號--例如,,使用"Google"文本鏈接到google.com站點,,可以這樣寫: [Google][]
然后這樣定義它的鏈接: [Google]: http://google.com/
鏈接名字有可能包含空格,不過沒問題,,這種情況照樣正常工作: Visit [Daring Fireball][] for more information.
然后這樣定義這個鏈接: [Daring Fireball]: http:///
鏈接定義可放于Markdown文檔的任意位置,。我建議把它們就近放到最先使用它的段落之后。不過如果你更喜歡放到文檔末尾,,當(dāng)成某種形式的尾注,,隨你的便。
下面是一些引用鏈接的例子: I get 10 times more traffic from [Google] [11] than from
[Yahoo] [12] or [MSN] [13].
[1]: http://google.com/ "Google"
[2]: http://search.yahoo.com/ "Yahoo Search"
[3]: http://search./ "MSN Search"
換成隱式鏈接標(biāo)識,,也可以這么寫: 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 Search"
上面兩種寫法最終得到HTML輸出是一樣的: <p>I get 10 times more traffic from <a href="http://google.com/"
title="Google">Google</a> than from
<a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
or <a href="http://search./" title="MSN Search">MSN</a>.</p>
作為比較,,下面這個段落使用Markdown的行內(nèi)鏈接風(fēng)格編寫: I get 10 times more traffic from [Google](http://google.com/ "Google")
than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
[MSN](http://search./ "MSN Search").
引用型鏈接的亮點并不在于它更容易書寫,而在于引用型鏈接讓你的文檔可讀性更好,??纯瓷厦娴睦樱菏褂靡眯玩溄樱温浔旧韮H81個字符,;而使用行內(nèi)鏈接的例子,,是176個字符。最終輸出的HTML則有234個字符,。純HTML中標(biāo)記字符甚至超過了文本本身,。
使用Markdown的引用型鏈接,源文檔更接近于最終的瀏覽器輸出效果,。再加上Markdown允許將標(biāo)記有關(guān)的元數(shù)據(jù)移到段落之外,,你盡管添加鏈接,而不必?fù)?dān)心打斷文件的故事情節(jié),。
強調(diào)
Markdown使用星號(* )和下劃線(_ )作為表示強調(diào),。用一個 * 或 _ 包裹的文本會使用 HTML <em> 標(biāo)簽包裹; 用兩個 * 或 _ 包裹的文本會使用HTML<strong> 標(biāo)簽包裹,。如: *single asterisks*
_single underscores_
**double asterisks**
__double underscores__
將會輸出為: <em>single asterisks</em>
<em>single underscores</em>
<strong>double asterisks</strong>
<strong>double underscores</strong>
你喜歡哪一種風(fēng)格就用哪一種,唯一的限制就是起始字符與關(guān)閉字符必須一致,。
強調(diào)符號可用于一個單詞的一部分: un*frigging*believable
不過如果你用空格包裹單獨的 * 或 _ ,,它們就失去了強調(diào)的含義,而成為字面上的星號或下劃線,。
如果不想讓Markdown解釋這兩個元字符,,就轉(zhuǎn)義它: \*this text is surrounded by literal asterisks\*
代碼
要在行內(nèi)表示部分代碼,用反引號(` )包住它,。與預(yù)格式代碼塊不同和,,行內(nèi)代碼用于段落之內(nèi)。例如: Use the `printf()` function.
會生成: <p>Use the <code>printf()</code> function.</p>
要在一個行內(nèi)代碼中使用反引號(` )本身,,用多個反引號作為定界符包住它: ``There is a literal backtick (`) here.``
這樣就會得到: <p><code>There is a literal backtick (`) here.</code></p>
包住行內(nèi)代碼的反引號定界符可以包括空格--即在起始反引號之后,,結(jié)束反引號之前可以有一個空格。這使得我們能夠在行內(nèi)代碼的開始或結(jié)束處使用反引號: A single backtick in a code span: `` ` ``
A backtick-delimited string in a code span: `` `foo` ``
會生成: <p>A single backtick in a code span: <code>`</code></p>
<p>A backtick-delimited string in a code span: <code>`foo`</code></p>
在行內(nèi)代碼中,,& 和< 和> 會自動編碼為HTML實體,,以方便包含HTML標(biāo)簽。Markdown會把下面這行: Please don't use any `<blink>` tags.
轉(zhuǎn)換為: <p>Please don't use any <code><blink></code> tags.</p>
你也可以這樣寫: `—` is the decimal-encoded equivalent of `—`.
會得到: <p><code>—</code> is the decimal-encoded
equivalent of <code>—</code>.</p>
圖片
必須承認(rèn),,要以“自然的”語法把一個圖片放到一個純文本文檔之中,,確實是一個挑戰(zhàn)。
Markdown使用了類似鏈接語法來表示圖片,,同樣有兩種風(fēng)格:行內(nèi)圖片和引用圖片。
行內(nèi)圖片語法示例: ![Alt text](/path/to/img.jpg)
![Alt text](/path/to/img.jpg "Optional title")
即:
- 一個感嘆號
! 開頭,;
- 其后緊跟一對中括號,,中括號內(nèi)存放圖片的alt`屬性;
- 其后緊跟一對小括號,,小括號內(nèi)存放圖片的URL或路徑,,及可選的用雙引號或單引號或小括號括起來的圖片
title
引用圖片語法如下: ![Alt text][id]
這里 "id" 是圖片引用標(biāo)識。圖片引用定義的語法與鏈接定義完全相同: [id]: url/to/image "Optional title attribute"
在寫這篇文章時,,Markdown還沒有語法指定圖片的大小,,如果這一點對你特別重要,你可以直接使用<img> 標(biāo)簽,。
雜七雜八
自動鏈接
Markdown提供了一種快捷方式"自動地"定義鏈接和Email地址:直接用一對尖括號把URL或Email地址包住,。這表示鏈接文本就是URL本身,Email文本就是Email本身,。這樣你就得到了一個可點擊的鏈接,,如: <http://example.com/>
Markdown會將它轉(zhuǎn)換為: <a href="http:///">http:///</a>
自動Email地址工作方式相似,只有一點不同,。Markdown自動的用一些十進制和十六進制數(shù)字表示你的Email,,以防止遭遇垃圾郵件襲擊,。 例如: <address@example.com>
會被轉(zhuǎn)換為: <a href="mailto:addre
ss@example.co
m">address@exa
mple.com</a>
瀏覽器會將它渲染為一個可點擊的鏈接,并正確顯示 "address@",。
(這種實體編碼的小方法可以騙過一些收集郵件地址的機器人,,不過它確實無法騙過所有的機器人。有總比沒有強,,聊勝于無,。能阻止一點就阻止一點好了。)
反斜線轉(zhuǎn)義
Markdown允許你使用反斜線轉(zhuǎn)義那些Markdown元字符,,讓它們失去原有的“魔力”,。舉個例子,如果你確實想用星號包住一個詞組(而不是想得到<em> 標(biāo)簽),,就可以在星號之前使用反斜線將其轉(zhuǎn)義,。即: \*literal asterisks\*
Markdown中,以下字符支持使用反斜線轉(zhuǎn)義: \ 反斜線
` 反引號
* 星號
_ 下劃線
{} 大括號
[] 中括號
() 小括號
# 井號
+ 加號
- 減號(連字符)
. 句點
! 感嘆號
|