關(guān)于簡書 Markdown
Markdown 語法的目標: 成為一種適用于網(wǎng)絡(luò)的書寫語言。
本文的目的:使讀者輕松了解簡書對 Markdown 語法的支持,了解其優(yōu)點和不足。能夠在選擇時正確取舍,使用時得心應(yīng)手。
一、區(qū)塊標記
區(qū)塊標記:是指內(nèi)容獨占一塊,需前后換行,不和其他標記共處一行的標記。
1. 段落
段落:即是一段連續(xù)的文字,可包含*、空格、換行、tab等字符。兩個段落之間使用空行分隔。
示例代碼
第一自然段
第二自然段
效果
第一自然段
第二自然段
注意:換行不是分段的標識,空行才是
2. 標題
標題:代表了文章中主題的層次,比如:文章標題使用一級標題,回目名稱使用二級標題,小節(jié)使用三級標題,依次類推。主題的層次代表了文章的大綱。
語法:Markdown 中使用連續(xù)的 n(1-6) 個 # 分別表示第 n 級標題。
示例代碼
# 一級標題
## 二級標題
### 三級標題
#### 四級標題
##### 五級標題
###### 六級標題
效果
一級標題
二級標題
三級標題
四級標題
五級標題
六級標題
注:# 和后續(xù)內(nèi)容之間應(yīng)放置一個空格
3. 列表
列表:就是一組相關(guān)信息的集合。簡書中的列表分為 有序列表 和 無序列表。
1) 有序列表
語法:使用 數(shù)字 + . 作為項目符號,項目符號和正式列表項目之間有一個空格。
示例代碼
1. 打開冰箱門
2. 把大象放進冰箱
3. 關(guān)上冰箱門
效果
- 打開冰箱門
- 把大象放進冰箱
- 關(guān)上冰箱門
2) 無序列表
語法:使用 * 作為項目符號,項目符號和正式列表項目之間有一個空格。
示例代碼
* 吃飯
* 睡覺
* 打豆豆
效果
- 吃飯
- 睡覺
- 打豆豆
注意事項:
- 無序列表的項目符號可使用 *,+,- 效果是相同的。
- 列表與后續(xù)內(nèi)容之間需要一個空行隔開,即:列表是一個段落
- 列表允許多層次嵌套
- 可以在項目中包含段落,只需將段落前添加一個 tab 或 4 個空格
4. 分割線
語法:使用 3 個連續(xù)的 * 即可得到一個分割線
示例代碼
***
效果
5. 引用
語法:在行頭加上 > 即可。
這里是一段引用
注意事項:
- 大于號 和 文字必須有一個空格
- 可以在每行之前加 > ,也可以在段落之前加 1 個 >
- 引用內(nèi)部可以使用其他 Markdown 標記
引用內(nèi)部可以添加新的引用,只需再加一個大于號
二、行內(nèi)標記
行內(nèi)標記和其他標記共處一行。
1. 強調(diào)文字
1) 斜體
語法:使用前后各 1 個 *(或_) 包含的文字是 斜體 文字
示例代碼
*斜體*, _斜體_
效果
斜體, 斜體
2) 粗體
語法:使用前后各 2 個 *(或_) 包含的文字是 粗體 文字
示例代碼
**粗體**,__粗體__
效果
粗體,粗體
3) 刪除文字
語法:使用前后各 2 個 ~ 包含的文字是刪除文字
示例代碼
~~刪除~~
效果
刪除
4) 粗斜體
語法:在**(或__)中嵌套_ (或*) 或 在_(或*)中嵌套**(或__)即可得到 粗斜體。
示例代碼
_**粗斜體**_, *__粗斜體__*
**_粗斜體_**, __*粗斜體*__
效果
粗斜體, 粗斜體
粗斜體, 粗斜體
2. 圖片與鏈接
1) 圖片:行內(nèi)圖片、引用圖片
1> 行內(nèi)圖片
圖片和圖片地址寫在一起。
語法: 
示例代碼

效果
史努比
注意事項
在簡書中,圖片可以直接拖到編輯區(qū),會自動上傳圖片并生成圖片地址。本功能是簡書提供的一大便利,值得表揚!
2> 引用圖片
圖片和圖片地址分開書寫。
語法:
![圖片標題][圖片id]
[圖片id]:圖片url
示例代碼:
![史努比][snoopy]
[snoopy]: http://upload-images.jianshu.io/upload_images/2779565-13b3439b110c16bf.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
效果
![史努比][snoopy]
[snoopy]: http://upload-images.jianshu.io/upload_images/2779565-13b3439b110c16bf.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
注意事項
引用圖片的 id 在文章中必須唯一
2) 鏈接:行內(nèi)鏈接、鏈接引用、自動鏈接
1> 行內(nèi)鏈接
語法:[鏈接名稱](鏈接地址 url "鏈接title")
示例代碼
[新浪](http://www.sina.com.cn "新浪主頁")
效果
注意事項
雙引號中的內(nèi)容是鏈接的 title (目前漢字顯示不正確)
2> 鏈接引用
一種鏈接和地址分離的方式。
語法:
[鏈接名稱][鏈接id]
[鏈接id]:鏈接 url 地址 "鏈接 title"
示例代碼
根據(jù) [雅虎][yahoo] 的調(diào)查,希拉里將當選;根據(jù) [谷歌][google] 的調(diào)查,川普將當選。
[yahoo]: http://search.yahoo.com/ "Yahoo Search"
[google]: http://google.com/ "Google"
效果
根據(jù) 雅虎 的調(diào)查,希拉里將當選;根據(jù) 谷歌 的調(diào)查,川普將當選。
注意事項
鏈接 id 可使用字母、數(shù)字、空格,但不區(qū)分大小寫
3> 自動鏈接
一種簡明的鏈接書寫方式
語法:<鏈接地址>
示例代碼
<http://www.sina.com.cn>
效果
3. 腳注
為名詞提供注釋,注釋將顯示在文章末尾。
語法:
待解釋文字[^腳注 id]
[^腳注 id]:注釋內(nèi)容
示例代碼
Hello程序[^hello]
[^hello]:即:Hello, world 程序
效果
Hello程序[1]
注意事項
- 腳注 id 必須唯一
- 無論腳注 id 如何起名,顯示時一律標為數(shù)字,并且按出現(xiàn)順序排列
三、雙標記
既可作為區(qū)塊標記又可作為行內(nèi)標記的標記。
1. 代碼塊
1) 行內(nèi)代碼塊
語法:使用兩個 ` 將代碼包含起來
示例代碼
在 Java 輸出 Hello, world :`System.out.print("Hello, World!");`
效果
在 Java 輸出 Hello, world :
System.out.print("Hello, World!");
2) 多行代碼塊
語法:只需要每行都縮進 4 個空格即可,或者使用```框起來。
示例代碼 1 (行前4個空格)
// JQuery 的 Hello, world
$(function(){
alert("Hello, world!")
});
效果(行前4個空格)
// JQuery 的 Hello, world
$(function(){
alert("Hello, world!")
});
示例代碼 2 (```)
```
// JQuery 的 Hello, world
$(function(){
alert("Hello, world!")
});
```
效果 (```)
// JQuery 的 Hello, world
$(function(){
alert("Hello, world!")
});
注意事項:
- 在代碼區(qū)塊內(nèi)部,", <>,& 將會自動轉(zhuǎn)換為轉(zhuǎn)義字符
- 在代碼區(qū)塊內(nèi)部,Markdown 標記將保持原樣,即:星號(*)就是星號(*),不被解釋為特殊標記,這樣就可以不能繼續(xù)使用 Markdown 語法了
四、表格
語法:
- 第一行為表頭,第二行分隔表頭和主體部分,第三行開始每一行為一個表格行。
- 列于列之間用管道符 | 隔開。表格每一行兩邊的管道符可省略。
- 第二行還可以為不同的列指定對齊方向。標題默認為居中對齊,內(nèi)容默認為左對齊;在 - 左邊加上 : 就是左對齊;在 - 右邊加上 : 就是右對齊;在 - 兩邊都加上 : 就是居中對齊。
示例代碼
姓名|語文成績|數(shù)學成績|總成績
---|:---|:---:|---:
喜羊羊|100|120|220
效果
| 姓名 | 語文成績 | 數(shù)學成績 | 總成績 |
|---|---|---|---|
| 喜羊羊 | 100 | 120 | 220 |
五、其他問題
1. Markdown 與 HTML 的關(guān)系
- HTML 是一種發(fā)布的格式,Markdown 是一種書寫的格式。
- Markdown 的格式語法只涵蓋純文本可以涵蓋的范圍。
- 在 Markdown 中可直接使用 HTML 標簽,但需要注意
- 對于 HTML 區(qū)塊元素――如 div、table、pre、p 等標簽,必須在前后加上空行與其它內(nèi)容區(qū)隔開,還要求它們的開始標簽與結(jié)尾標簽不能用制表符(tab)或空格來縮進
- HTML 的行內(nèi)標簽——如 span、cite、del 可以在 Markdown 的段落、列表或是標題里隨意使用。
- 在 HTML 的區(qū)塊標簽中的 Markdown 標簽是沒有效果的
2. 特殊字符的自動轉(zhuǎn)換
- 在 HTML 文件中,有兩個字符需要特殊處理: < 和 &,必須使用轉(zhuǎn)義字符:& lt ; 和 & amp ;
- Markdown 中,你可以自由的書寫 < 和 &,編輯器會智能的進行判斷:當這些符號用于 HTML 標簽中,他們將保留原型;當他們單獨使用時,將會轉(zhuǎn)換為字符實體。
- 在代碼塊中,它們將統(tǒng)統(tǒng)被轉(zhuǎn)換為字符實體,即:原樣顯示。
3. Markdown 中的轉(zhuǎn)義字符
Markdown 中,如需顯示有特定意義的符號,如:*,# 等,可使用 反斜杠 \ 進行轉(zhuǎn)義??蓪θ缦伦址M行轉(zhuǎn)義:
*
`
*
_
{}
()
#
+
-
.
!
六、簡書尚不支持的標記和不足
- 用于生成目錄索引的 [TOC]
- 用于說明文章標簽的 tags
- 定義列表和待辦事宜 Todo 列表
- 數(shù)學公式
- 各種圖形:流程圖、時序圖、甘特圖
- 其他技術(shù),如:{mermaid}
- 區(qū)塊代碼中不顯示行號
七、給簡書的一點建議
- 對于普通用戶來講,定義列表、生成目錄索引和文章標簽功能是十分必要的,希望能夠盡快增加這些功能。希望能夠?qū)崿F(xiàn)預覽圖和編輯器的同步滾動功能。
- 對于理工狗來講,編輯 LaTex 數(shù)學公式是非常必要的功能,希望能夠盡快增加這個功能。
- 對于代碼狗來講,區(qū)塊代碼中顯示行號,以及流程圖、時序圖是非常必要的功能,希望能夠盡快增加這些功能。
- 其他的諸如:待辦事宜列表、甘特圖,mermaid等功能,可以慢慢實現(xiàn)。
跋
由于本人初來乍到,水平有限,難免有疏漏錯誤,萬望指教,不勝感激。
-
即:Hello, world 程序 ?
