Markdown 初學(xué)者指南
在我的工作中,我經(jīng)常要寫代碼、寫與代碼相配套的文檔、創(chuàng)建網(wǎng)頁、進(jìn)行文本恢復(fù)項(xiàng)目。我在學(xué)校的時(shí)候還寫過幾篇正式的論文,也包括寫課堂筆記,幾乎每節(jié)課都寫。
我?guī)缀踉谖宜械膶懽髦卸际褂?Markdown,它對我來說是一個(gè)節(jié)省時(shí)間的好工具。
在這篇文章中,我將分享我使用 Markdown 的體會(huì)。你將會(huì)了解以下內(nèi)容:
- 什么是 Markdown ?
- 它是怎么工作的?
- Markdown 的基本語法和怎樣使用它們。
什么是 Markdown ?
假如你是 Markdown 新手,它是一個(gè)為網(wǎng)絡(luò)寫手轉(zhuǎn)換文本到 HTML 格式的工具。Markdown 文檔遵循一種特定的語法,容易閱讀和寫作。它們是純文本,所以能夠通過電腦上的任何文本編輯器來創(chuàng)建。然后這些文檔能夠轉(zhuǎn)換成網(wǎng)頁 —— 而網(wǎng)頁是用一個(gè)叫做 HTML 的語言標(biāo)記創(chuàng)建的。
Markdown 只是一種不必(即使知道怎么做)寫 HTML 代碼就能夠創(chuàng)建網(wǎng)頁的方式。實(shí)際上,如果你不轉(zhuǎn)換成 HTML 的話,Markdown 甚至是個(gè)對純文本格式化的好方法。有人曾這樣對我描述 Markdown :
“ 它不是所見即所得,而是所見即所意 ”。
然而,Markdown 不只是一個(gè)簡單的格式化體系,它也是一個(gè)純文本格式轉(zhuǎn)化到 HTML 的一個(gè)軟件工具。
這就是為什么語法很重要。如果你想在網(wǎng)頁上起個(gè)標(biāo)題,Markdown 將會(huì)基于你標(biāo)題前面的字符來創(chuàng)建。Markdown 的一些語法示例如截圖所示:
Markdown to HTML conversion
所以我怎樣才能使純文本文件轉(zhuǎn)換成 HTML 格式呢?
John Gruber 的 Markdown 是一個(gè)運(yùn)行在命令行上的 Perl 腳本。也就是說,它可以讀取你創(chuàng)建的 Markdown 文本并用它來構(gòu)建網(wǎng)頁。
由于有 ??許多著名的編輯器?? 可以為你做這個(gè)轉(zhuǎn)換,我在這里盡量避免使用命令行。不僅如此,許多這樣的編輯器會(huì)讓你寫下你的文本,并同時(shí)向你展示網(wǎng)頁的樣子(稱為渲染)。
Markdown 編輯器總的來說設(shè)置了兩幀:左邊部分是你要寫你文本的地方,右邊部分是用 HTML 語言顯示給你格式化后文本的樣子:
Most Markdown editors have two panes to write and preview the text
當(dāng)你用它滿意地完成你的寫作,只需保存 Markdown 文件即可。就像這樣,之后一旦你需要編輯和修改的時(shí)候,你就會(huì)用到它。文件保存后,你可以用編輯器將 Markdown 文檔導(dǎo)出為 HTML 格式的文檔。
編輯器用你的 Markdown 作為參考創(chuàng)建網(wǎng)頁。你的 Markdown 文檔在導(dǎo)出時(shí)不會(huì)修改,你仍然擁有源文檔,同時(shí)創(chuàng)建一個(gè)獨(dú)立的、新的 HTML 文檔(網(wǎng)頁),你可以把它放到一個(gè)網(wǎng)頁服務(wù)器上。
注意:許多 Markdown 編輯器也可以將你的 Markdown 文檔導(dǎo)出為其他格式,比如 ??.doc?
?、??.docx?
? 和 ??.pdf?
?。之后你可以了解這些高級(jí)設(shè)置和你可能需要的額外軟件。
Markdown 基礎(chǔ)語法
為了讓 Markdown 新用戶快速了解,我將把這部分內(nèi)容限制在我最常使用的語法上。我相信這些將是最有幫助的 - 你可以在現(xiàn)在就提高工作效率,同時(shí)了解更多關(guān)于 Markdown 以后能為你做什么。
寫標(biāo)題
我經(jīng)常使用 ??#?
? 字符來表示標(biāo)題。這里有六個(gè)等級(jí):
# 一級(jí)標(biāo)題
## 二級(jí)標(biāo)題
### 三級(jí)標(biāo)題
#### 四級(jí)標(biāo)題
##### 五級(jí)標(biāo)題
###### 六級(jí)標(biāo)題
還有一種標(biāo)題類型,是在文本下使用下劃線。我很少使用這種類型的標(biāo)題,我只限于使用兩種:一種是使用 ??=?
? 字符表示的雙下劃線,生成 ??H1?
? 標(biāo)題。一種是使用 ??-?
? 字符表示的單下劃線,生成 ??H2?
? 標(biāo)題:
一級(jí)標(biāo)題
===============
二級(jí)標(biāo)題
---------------
段落
段落被空行隔開(確保段落之間有一個(gè)空行)。首行不要縮進(jìn)。在 Markdown 里用 ??Tab?
? 鍵或者空格鍵縮進(jìn)有著不同的目的和作用。
段落是一個(gè)文本塊,不應(yīng)該用空格鍵和 ??Tab?
? 鍵來縮進(jìn)。它可以有一行或者多行。要結(jié)束這一段另起一段,點(diǎn)兩下回車鍵;段落通過一個(gè)空行分開。
換行
請記住,對于段落,必須用空行來分隔它們,這要通過按兩次回車鍵來實(shí)現(xiàn)。Markdown 對此很嚴(yán)格。
Markdown 不支持 “強(qiáng)制插入換行符hard-wrapped” 或者 “固定行長度fixed-line-length” 段落。那就是說,單擊回車鍵一次將不會(huì)強(qiáng)制文本換到新的一行。它可能在編輯窗口顯示,但是 HTML 格式下不顯示。
然而,有時(shí)你可能需要拆分段落或者換行。Markdown 確實(shí)有一種方法可以做到,但是它一開始看起來可能有一點(diǎn)奇怪:換行是通過用兩到多個(gè)空格鍵然后點(diǎn)一次回車鍵完成的。
這里有一個(gè)短詩的范例。每行以兩個(gè)空格結(jié)束。最后一行,由于是這個(gè)小節(jié)的結(jié)束,沒有額外的空格。因?yàn)樗沁@個(gè)詩句(段落)的結(jié)束,我雙擊回車鍵兩次:
Baa, baa black sheep,
Have you any wool?.
Yes, sir. Yes, sir.
Three bags full.
在一行的最后加兩個(gè)空格來創(chuàng)建一個(gè)換行,可能需要時(shí)間去習(xí)慣。
水平線
水平線非常適合將文本拆分為多個(gè)部分。
用三個(gè)或更多的破折號(hào) ??-?
? ,下劃線 ??_?
? ,或者星號(hào) ??*?
? 來做水平線,像這樣:
---
***
___
你甚至可以在字符之間輸入空格:
- - -
在文章和報(bào)告中我不經(jīng)常使用水平線,但是在日記、系統(tǒng)日志和課堂筆記中對我很有用。
用加粗和斜體來強(qiáng)調(diào)文本
當(dāng)你想讓一個(gè)單詞或者短語脫穎而出,引起注意,你可以讓它加粗或者斜體顯示。斜體和加粗文本可以在兩種方式中任選其一。第一種是用星號(hào) ??*?
? 將其包括,第二種是用下劃線 ??_?
? 的方式。
使一個(gè)單詞或者短語斜體顯示,用一個(gè)下劃線或者星號(hào)來括住文本。使一個(gè)單詞或者短語加粗,使用兩個(gè)下劃線或者星號(hào)來括住文本:
用星號(hào)來顯示 *斜體* 。
用下劃線來顯示 _斜體_ 。
用星號(hào)來顯示 **加粗** 。
用下劃線來顯示 __加粗__ 。
記住兩邊使用相同的字符。單詞或短語的一面是星號(hào),另一面是下劃線,將不會(huì)生效。相同字符必須在單詞或者短語的兩邊。
塊引用
塊引用被用來直接引用。如果你正在寫博客,你想重復(fù)本杰明?富蘭克林說過的話,你可以使用塊引用。
一個(gè)右尖括號(hào)被用來指定塊引用:
> 這是塊引用。
>> 如果你想進(jìn)一步再次塊引用,使用兩個(gè)右尖括號(hào)。
在 Markdown 中添加超鏈接
超鏈接非???。在基礎(chǔ)版的 Markdown 語言有三種方式創(chuàng)建超鏈接,在這里我只講兩種:普通連接和自動(dòng)連接。
第三種鏈接被稱為參考鏈接,在 Markdown 語言的基礎(chǔ)版和高級(jí)版都支持。我想讓你快速入門。你可以在準(zhǔn)備好的時(shí)候找找參考鏈接的資料。
普通鏈接可以讓你鏈接到各種各樣的網(wǎng)站。網(wǎng)站名稱或者你要使用的短語被放置在中括號(hào) ??[]?
? 中。真實(shí)的鏈接地址在小括號(hào) ??()?
? 中。
現(xiàn)在去看看 [Linux 中國](https://linux.cn) 。
自動(dòng)連接通過用尖括號(hào) ??<>?
? 括住鏈接地址。這個(gè)鏈接是一個(gè)實(shí)際的地址(可以是網(wǎng)址或者電子郵件地址)。拼寫出來的鏈接被轉(zhuǎn)換到 HTML 的時(shí)候,就變成了有效的鏈接。
<http://automatic-link-to-url.com/>
<name@emailaddress.com>
當(dāng)你想在文本中拼寫出網(wǎng)址時(shí),這很有用:
在 Markdown 中添加圖片
鏈接圖片幾乎與鏈接網(wǎng)站一樣。網(wǎng)站鏈接和圖片鏈接微小的不同是,圖片鏈接以感嘆號(hào) ??!?
? 開始。
圖片名稱或者圖片描述放置在中括號(hào) ??[]?
? 里。實(shí)際鏈接放置在小括號(hào) ??()?
? 里。
你可以像這樣嵌入圖片:

這兒有一個(gè)示例圖像鏈接。這是一個(gè)示例鏈接,沒有這個(gè)圖片,但是這是個(gè)好例子,顯示了實(shí)際鏈接應(yīng)該有的樣子:

列表
制作列表有很多原因。它們可能用來作為代辦事項(xiàng)、大綱中的主題元素、組裝項(xiàng)目中的明細(xì)欄等等。列表有兩種主要類型:無序列表和有序列表。
無序列表沒有編號(hào);這些就是我們在許多文檔中所看到的列表項(xiàng)。有序列表是有編號(hào)的。
要?jiǎng)?chuàng)建一個(gè)有序(有編號(hào)的)列表,只需在每行用一個(gè)數(shù)字開始,像這樣:
1. 項(xiàng)目 一。
2. 項(xiàng)目 二。
3. 項(xiàng)目 三。
無序列表沒有編號(hào),但要在列表每個(gè)項(xiàng)目的開始使用一個(gè)星號(hào) ??*?
? 、一個(gè)加號(hào) ??+?
? ,或者一個(gè)減號(hào) ??-?
? 。我偏向于使用一個(gè)星號(hào)或者減號(hào),你可以選擇適合你的:
* 項(xiàng)目 一。
+ 項(xiàng)目 二。
- 項(xiàng)目 三。
子項(xiàng)目可以通過縮進(jìn)被添加到有序和無序列表中,像這樣:
1. 子項(xiàng)目 一
2. 子項(xiàng)目 二
Markdown 語法速查表
這是一個(gè)簡短的 Markdown 語法列表為你作為參考,這個(gè)列表已經(jīng)在本小結(jié)中介紹。
如果你決定使用 Markdown 作為寫作工具,你會(huì)發(fā)現(xiàn) Markdown 會(huì)讓寫作變得更加簡單。
結(jié)語
Markdown 可以做比我描述的更多的事情。我寫作的很大一部分是用我在這里介紹的 Markdown 語法完成的 - 而這些是我最常使用的項(xiàng)目,即使是在更復(fù)雜的項(xiàng)目中。
如果這些看起來太簡單了,那么說明它真的很容易。Markdown 用來完成簡單的寫作任務(wù),但是你不必完全聽我的。你可以嘗試一下!不必安裝 Markdown 編輯器;你可以在線嘗試。這里有幾個(gè) ??優(yōu)秀的在線 Markdown 編輯器??。這里我喜歡用這三個(gè):
- John Gruber’s ??Dingus??
- ??Editor.md??
- ??Dillinger??
??Editor.md?? 和 Dillinger 會(huì)讓你看到你的 Markdown 文本作為 HTML 實(shí)時(shí)渲染的效果。 Dingus 不能實(shí)時(shí)預(yù)覽,但是在參考頁有 Markdown 的語法速查表。
用以上這些在線編輯器嘗試一下文章中的示例。也可以嘗試一下你自己的想法。這將使你在可能致力于學(xué)習(xí)更多的知識(shí)之前習(xí)慣于 Markdown。