[轉]Markdown語法筆記

跳至內容 taolex客棧
又一個WordPress站點

Markdown語法筆記

前言

這篇文章其實我之前就在Gibhub的博客上寫了,現在博客已經遷出Gibhub,我稍作了更新重新發布出來。

Markdown簡介

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
  1. github
  2. jekyll
  3. bootstrap

注意:若兩項之間用空行隔開,每項的內容會轉換成被<p>包圍起來。

  • Angry Birds
  • Bad Piggies

會轉換成:

  • Angry Birds
  • Bad Piggies

鏈接和圖片

鏈接和圖片的語法很像,鏈接用[]()表示,而圖片是![](),并且可以選擇加上title屬性。還有另外一種形式,與論文中的參考文獻很相似,具體使用請看示例。
語法示例

第一種:鏈接[google](http://www.google.com "search")和圖片![logo](http://taolex.com/wp- content/uploads/2016/01/logo.png "logo")
第二種:鏈接[google][1]和圖片![logo][2]
[1]: http://www.google.com "search"
[2]: http://taolex.com/wp-content/uploads/2016/01/logo.png "logo"

顯示效果
第一種:鏈接google和圖片

logo

第二種:鏈接google和圖片
logo


強調

強調可以用*或者_表示,效果是相同的,不同數量可以分別表示斜體、粗體和粗斜體。
語法示例
表示*斜體*、**粗體**和***粗斜體***表示_斜體_、__粗體__和___粗斜體___

顯示效果
表示斜體粗體粗斜體
表示斜體粗體粗斜體


代碼段

內聯代碼段用反引號`
(鍵盤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">
    &copy; 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
### google
`ms`
*nokia*

顯示效果

  • apple

google

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&T4<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上的另一個版本,不過我覺得上面這個版本翻譯得更好一些。


WordPress.org

taolex客棧 自豪地采用WordPress

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容