跳至內容 taolex客棧
又一個WordPress站點
Markdown語法筆記
前言
這篇文章其實我之前就在Gibhub的博客上寫了,現在博客已經遷出Gibhub,我稍作了更新重新發布出來。
Markdown簡介
Markdown是一門為了實現易讀易寫的標記語言,而且可以轉化為其他的標記語言(如HTML)。這種語言吸收了很多電子郵件中的純文本標記的特性。除了標準語法,Markdown還有很多衍生的版本,例如PHP Markdown Extra,以及GitHub上的“GitHub Flavored Markdown”(GFM)。
而本文將介紹原始的標準Markdown語法,也就是Standard Markdown(SM)。dillinger是一個在線Markdown編輯器,你可以一邊閱讀本文,一邊練練手。
標題
一級標題可以用任意數量=
表示,二級標題用-
表示,也可以用1到6個#
表示一到六級標題。
語法示例:
一級標題
===
二級標題
---
# 一級標題
## 二級標題
### 三級標題
#### 四級標題
##### 五級標題
###### 六級標題
顯示效果:
一級標題
===
二級標題
一級標題
二級標題
三級標題
四級標題
五級標題
六級標題
列表
無序列表可以用*
,+
,-
表示,而有序列表則用數字緊跟.
來表示。有序列表中的數字不影響實際顯示,因為HTML的有序列表<ol>
不支持定義單項序號。列表的一項可以有多個段落,但需要縮進4個空格或1個制表符。
語法示例:
* perl
* ruby
* python
<!-- 注意兩個列表不能相鄰 -->
1. github
2. jekyll
3. bootstrap
顯示效果:
- perl
- ruby
- python
- github
- jekyll
- bootstrap
注意:若兩項之間用空行隔開,每項的內容會轉換成被<p>
包圍起來。
- Angry Birds
- Bad Piggies
會轉換成:
- Angry Birds
- Bad Piggies
鏈接和圖片
鏈接和圖片的語法很像,鏈接用[]()
表示,而圖片是![]()
,并且可以選擇加上title屬性。還有另外一種形式,與論文中的參考文獻很相似,具體使用請看示例。
語法示例:
第一種:鏈接[google](http://www.google.com "search")和圖片
第二種:鏈接[google][1]和圖片![logo][2]
[1]: http://www.google.com "search"
[2]: http://taolex.com/wp-content/uploads/2016/01/logo.png "logo"
顯示效果:
第一種:鏈接google和圖片
第二種:鏈接google和圖片
強調
強調可以用*
或者_
表示,效果是相同的,不同數量可以分別表示斜體、粗體和粗斜體。
語法示例:
表示*斜體*、**粗體**和***粗斜體***表示_斜體_、__粗體__和___粗斜體___
顯示效果:
表示斜體、粗體和粗斜體
表示斜體、粗體和粗斜體
代碼段
內聯代碼段用反引號`
(鍵盤esc下面的鍵,不要與單引號混淆了)包圍。
而塊級代碼段出于簡潔的考慮,只需在行的開頭縮進4個空格或1個制表符即可,Markdown會轉換成用<pre>
和<code>
包圍代碼內容。
語法示例:
這里是內聯代碼段`git`,
# 這里是塊級代碼段 git add .
顯示效果:
這里是內聯代碼段git
,
#這里是塊級代碼段
git add .
注意:如果你需要在代碼中顯示反引號`,請參考下面的寫法,要顯示n個反引號的話,就在外圍寫1 + n個反引號。
`````
Markdown不會對代碼段的代碼內容進行語法轉換,而像&
和<
這類字符會自動轉換成HTML實體。例如,
<div class="footer">
? 2016 taolex
</div>
會轉換成:
<pre><code><div class="footer">
© 2016 taolex
</div>
</code></pre>
水平分隔線
只需要三個或以上的*
或者-
就可以表示水平分隔線。
語法示例:
***
---
* * *
------------
顯示效果:
*********************************奇葩的分割線****************************
轉義
有時候我們想要用#
,*
這類字符,但是他們在Markdown中有特殊的含義,所以需要轉義。在Markdown中可以用反斜杠來幫助你使用這類字符。需要轉義的字符如下:
\ 反斜線
` 反引號
* 星號
_ 底線
{} 花括號
[] 方括號
() 括號
# 井號
+ 加號
- 減號
. 句點
! 驚嘆號
語法示例:
\#0571
\*\*\*\*711\*\*\*\*
顯示效果:
#0571
****711****
引用
引用的用法比較簡單,只需在引用內容開頭加上>
。
語法示例:
問:“WP8應用和iOS應用的差距在哪里?”答:“iOS應用要多少有多少,WP應用要多少有多少。”
中國夢.txt 美國夢.exe 日本夢.avi 朝鮮夢.bat
顯示效果:
問:“WP 8 應用和 iOS 應用的差距在哪里?”答:“iOS 應用要多少有多少;WP 應用要多少有多少。
中國夢.txt 美國夢.exe 日本夢.avi 朝鮮夢.bat
塊級元素和內聯元素
塊級元素(區塊元素)和內聯元素(區段元素)其實是CSS的概念,為了幫助我們更好地在HTML中展示,有必要介紹一下。《CSS權威指南》解釋:任何不是塊級元素的可見元素都是內聯元素。內聯元素通常不會以新行開始,如同單詞,相互之間可以在同一行內顯示;塊級元素如同段落,不可能共存于同一行。
在Markdown中,段落、標題、列表、引用、塊級代碼段和分割線都是塊級元素,而鏈接、圖片、強調和內聯代碼段都是內聯元素。
語法示例:
* apple
`ms`
*nokia*
顯示效果:
- apple
ms
nokia
自動鏈接
Markdown支持自動鏈接形式來處理網址和Email地址,這樣省了我們一些寫HTML的力氣,也可以讓寫作內容一目了然,用法是使用方括號<>
包圍地址內容。
語法示例:
<http://xaolex.github.io>
<xaolex@gmail.com>
顯示效果:
http://xaolex.github.io
xaolex@gmail.com
自動轉換
在HTML中,<
和>
用于起始和結束標簽,一些預留字符有特定的含義,因此這些字符需要使用字符實體才能正確地顯示。
因此在傳統的HTML文件中,如果你要表示AT&T
,則要寫成AT&T
來轉義,鏈接的href
屬性中包含&
也同理,需要寫成&
。現在使用Markdown能幫你自動處理這些元素。
例如,如果你寫成AT&T
會被自動轉換成AT&T
。4<5
會自動轉換成4<5
。
語法示例:
AT&T
? taolex 2016
1 + 1 <> 1
顯示效果:
AT&T
? taolex 2016
1 + 1 <> 1
內嵌HTML
Markdown目標成為一種適合網絡內容的寫作語言。因此,在Markdown中可以很方便地使用HTML。有一點需要注意,Markdown不會處理塊級元素的Markdown語法,像<table>
,<div>
,<p>
里面用強調語法*ABC*
是無效的。
語法示例:
<div>*content*</div>
<p>**paragraph**</p>
<span>***word***</span>
### <a href="#">*Title*</a>
顯示效果:
<div>content</div>
<p>paragraph</p>
<span>word</span>
<a href="#">Title</a>
嵌套使用
引用、列表還可以嵌套使用,引用可以嵌套標題、列表等,甚至嵌套另一個引用,列表也可以嵌套另一個列表。如果想要在列表或引用中嵌入塊級代碼段,則需要在原有基礎上縮進8個空格或2個制表符。
語法示例:
> *這是引用內容*
> > 再加個引用看看
>
> * 這是引用中的列表
> * 這是引用中的列表
>
* meat
* vegetable
* fruit
- apple
- pear
- orange
顯示效果:
這是引用內容
再加個引用看看
- 這是引用中的列表
- 這是引用中的列表
- meat
- vegetable
- fruit
- apple
- pear
- orange
其他語法說明
- 一行中只含有空格和制表符也算空行。
- 空一行分段。
- 行尾輸入兩個空格加回車表示斷行,即
<br>
。 - 如果兩行之間不空一行表示空格。
- 可以使用``
- 進行注釋。
小結
在Github上折騰博客,很多地方都用到了Markdown,在網上搜索了一些資料學習Markdown,順便寫了這篇介紹常用Markdown語法的文章。我覺得這篇文章介紹得還是有點細了,其實很多細節的地方我們一般用不到的,用到的時候再查也不遲。
不過,如果你覺得這些語法還不夠用的話,可以閱讀官方的文章:
英文版:Markdown: Syntax
中文版:Markdown語法說明(詳解版)
中文版還有wowubuntu上的另一個版本,不過我覺得上面這個版本翻譯得更好一些。
taolex客棧 自豪地采用WordPress