(小白入手必讀)
喜歡簡書的朋友,每天看著別人寫的文章,自己也總會有想去寫一些東西的沖動,可是面對簡書的文本編輯格式,不少人會望而卻步。
我是從三年前就一直關注簡書的,也算是老用戶了,今天終于決定提起筆開始寫作之路。然而要想用簡書進行創(chuàng)作,就不能不學習Markdown語法,我這兩天在網(wǎng)上查找了一些Markdown語法教程,但并不能解決我書寫過程在遇到的所有問題。
所以今天我寫下這篇文章,用來給像我一樣的小白以指導(本文創(chuàng)作過程中用到的參考同樣會附上,以方便大家更快地學習)。
先簡單介紹一下Markdown語言:
Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文本內容具有一定的格式。
由于初始的Markdown語言并不完善,所以Markdown有一系列的衍生版本,用于擴展Markdown的功能(如表格、腳注等)。
這些衍生的版本讓Markdown擁有了更多的功能,雖然在一些語法和渲染效果上有改動,但是語法基本上都是相互兼容的。今天我們要講述的簡書編輯器也是衍生版本之一,只不過簡書讓Markdown語言更加方便實用,這里不得不贊一下幕后的程序員們,O(∩_∩)O哈哈~
當然啦,我們就只是想用這種工具來完成我們的寫作,所以很多功能都不是必須要知道的,這里我就只介紹一下寫作過程中會用到而且方便使用的集中語法。
好了,不贅述了,趕快進入正文啦!
1.標題
標題是一篇文章必不可少的,也是寫作最先接觸到的,所以把標題放在第一章節(jié)。
例如:
Markdown程序:
# 這是一級標題
## 這是二級標題
### 這是三級標題
#### 這是四級標題
##### 這是五級標題
得到的渲染結果為:
這是一級標題
這是二級標題
這是三級標題
這是四級標題
這是五級標題
由此例可以看出#符號的個數(shù)代表標題的級數(shù),需要三級標題就用三個#號,需要五級標題就用五個#號,以此類推。
(注意!注意!注意?。?br>
#號和標題之間的空格可有可無,不影響效果!
還有一種情況需要特別說明:
為了對稱美觀,標題后邊也可以加空格和#號。
例如:
Markdown語言:
# 這是一級標題 #
## 這是二級標題 ##
### 這是三級標題 ###
### 這是三級標題 ###
### 這是三級標題 ######
### 這是三級標題 ##########
得到的顯示為:
這是一級標題
這是二級標題
這是三級標題
這是三級標題
這是三級標題
這是三級標題
標題后空格、#號的添加與否,以及空格和#號個數(shù)的多少,均不會影響渲染效果。
2.字體
Markdown語言中的字體的樣式主要有正常、傾斜、加粗、加粗傾斜、刪除線五種字體樣式。
傾斜字體需要在兩邊各使用一個*或者_;
加粗字體需要在兩邊各使用兩個個*;
傾斜加粗字體需要在兩邊各使用三個*;
刪除線字體需要在兩邊各使用兩個~。
例如:
Markdown語言:
This is Normal Type.
*This is Italic Type.*
_This is Italic Type._
**This is Bold Type.**
***This is Italic & Bold Type.***
~~This is Delete Type.~~
得到的顯示為:
This is Normal Type.
This is Italic Type.
This is Italic Type.
This is Bold Type.
This is Italic & Bold Type.
This is Delete Type.
3.列表
Markdown支持無序列表和有序列表。
3.1無序列表和有序列表
3.1.1無序列表
無序列表使用- + *進行列表標記。
例如:
Markdown語言:
- 生命誠可貴,
+ 愛情價更高;
* 若為自由故,
- 兩者皆可拋!
得到的顯示為:
- 生命誠可貴,
- 愛情價更高;
- 若為自由故,
- 兩者皆可拋!
注意:- + *三種符號是等同的。
3.1.2有序列表
例如:
Markdown語言:
1. 生命誠可貴,
2. 愛情價更高;
3. 若為自由故,
4. 兩者皆可拋!
得到的顯示為:
- 生命誠可貴,
- 愛情價更高;
- 若為自由故,
- 兩者皆可拋!
3.1.3有序列表中的無序列表
例如:
Markdown語言:
1. 生命誠可貴,
2. 愛情價更高;
- 生命誠可貴,
+ 愛情價更高;
3. 若為自由故,
* 若為自由故,
- 兩者皆可拋!
4. 兩者皆可拋!
得到的顯示為:
- 生命誠可貴,
- 愛情價更高;
- 生命誠可貴,
- 愛情價更高;
- 若為自由故,
- 若為自由故,
- 兩者皆可拋!
- 兩者皆可拋!
3.1.4無序列表中的有序列表
例如:
Markdown語言:
- 生命誠可貴,
+ 愛情價更高;
1. 生命誠可貴,
1. 愛情價更高;
1. 若為自由故,
1. 兩者皆可拋!
* 若為自由故,
- 兩者皆可拋!
和Markdown語言:
- 生命誠可貴,
+ 愛情價更高;
1. 生命誠可貴,
2. 愛情價更高;
3. 若為自由故,
4. 兩者皆可拋!
* 若為自由故,
- 兩者皆可拋!
最后得出的渲染效果相同,得到的顯示都是:
- 生命誠可貴,
- 愛情價更高;
- 生命誠可貴,
- 愛情價更高;
- 若為自由故,
- 兩者皆可拋!
- 若為自由故,
- 兩者皆可拋!
可以看出:在Markdown語言中,無序列表中的有序列表前的數(shù)字序號對列表的渲染效果是沒有影響的。
3.1.5有序列表中的有序列表
例如:
Markdown語言:
1. 生命誠可貴,
2. 愛情價更高;
1. 生命誠可貴,
2. 愛情價更高;
3. 若為自由故,
4. 兩者皆可拋!
3. 若為自由故,
4. 兩者皆可拋!
得到的顯示為:
- 生命誠可貴,
- 愛情價更高;
- 生命誠可貴,
- 愛情價更高;
- 若為自由故,
- 兩者皆可拋!
- 若為自由故,
- 兩者皆可拋!
3.1.6無序列表中的無序列表
接下來列舉兩個文章中常用到的兩種無序列表嵌套使用的實例子:
例如:
Markdown語言:
- 生命誠可貴,
+ 愛情價更高;
* - 若為自由故,
- * 兩者皆可拋!
得到的顯示為:
- 生命誠可貴,
- 愛情價更高;
- 若為自由故,
- 兩者皆可拋!
注意:
上一級和下一級的無序列表混合使用,可以使用在下一級的無序列表前添加三個空格鍵實現(xiàn)。
例如:
Markdown語言:
- 生命誠可貴,
+ 愛情價更高;
* 生命誠可貴,
- 愛情價更高;
- 若為自由故,
* 兩者皆可拋!
- 若為自由故,
* 兩者皆可拋!
得到的顯示為:
- 生命誠可貴,
- 愛情價更高;
- 生命誠可貴,
- 愛情價更高;
- 若為自由故,
- 兩者皆可拋!
- 若為自由故,
- 兩者皆可拋!
3.2列表縮進
Markdown語法中支持列表項目縮進,只用在第一行內容前使用列表符。
例如:
Markdown語言:
- 莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
+ 誰怕?
一蓑煙雨任平生。
得到的顯示為:
- 莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
- 誰怕?
一蓑煙雨任平生
3.3包含段落的列表縮進
當列表項目中包含多個段落時,每個段落之前都必須縮進4個空格符(一次縮進)。
例如:
Markdown語言:
- 莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
一蓑煙雨任平生。
莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
一蓑煙雨任平生
得到的顯示為:
-
莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
一蓑煙雨任平生。莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
一蓑煙雨任平生
3.4包含引用的列表
如果要在列表中進行引用,需要使用>符號進行實現(xiàn):
例如:
Markdown語言:
- 莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
一蓑煙雨任平生。
> 莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
一蓑煙雨任平生
得到的顯示為:
- 莫聽穿林打葉聲,
何妨吟嘯且徐行。
竹杖芒鞋輕勝馬,
一蓑煙雨任平生。
莫聽穿林打葉聲,
何妨吟嘯且徐行。竹杖芒鞋輕勝馬,
一蓑煙雨任平生
3.5一個特殊情況
這里講一下\符號的特殊使用(避免在行首出現(xiàn)'數(shù)字-句點-空白'的情況,需要在數(shù)字之后加上\符號)。
例如:
Markdown語言:
2008. Nowadays, people of all strata begin to ...
2008\. Nowadays, people of all strata begin to ...
得到的顯示為:
- Nowadays, people of all strata begin to ...
2008. Nowadays, people of all strata begin to ...
4.引用和嵌套
4.1引用
引用是指在說話或寫作中引用現(xiàn)成的話,如詩句、格言、成語等,以表達自己思想感情的修辭方法。
在書本的行文中用引號(“ ”和' ')來表示引用,相應的,在Markdown語言中也給了特殊的語言以及渲染效果來表示引用。
例如:
Markdown語言:
> 我愿意是急流,
山里的小河,
在崎嶇的路上,
巖石上經過……
得到的顯示為:
我愿意是急流,
山里的小河,
在崎嶇的路上,
巖石上經過……
在這里,Markdown語言允許我們偷懶,僅需要在第一行中使用>符號就可以一直引用,而不用在每一行引用的內容前都添加>符號,大大方便了我們的使用。同理,>符號后的空格可有可無。
那么,如果想結束引用,該怎么辦呢?
答案:可以使用空行來結束內容的引用。
例如:
Markdown語言:
> 我愿意是急流,
山里的小河,
在崎嶇的路上,
巖石上經過……
得到的顯示為:
我愿意是急流,
山里的小河,
在崎嶇的路上,
巖石上經過……
4.2嵌套{#index}
嵌套,指在已有的表格、圖像或圖層中再加進去一個或多個表格、圖像或圖層的方法,簡單可理解為鑲嵌、套用。在Markdown語言中,嵌套表示在引用的內容中引用另外的內容。
例如:
Markdown語言:
> 我愿意是急流,
山里的小河,
> > 在崎嶇的路上,
巖石上經過……
> > > 只要我的愛人
是一條小魚,
> > > > > > > 在我的浪花中
快樂地游來游去
得到的顯示為:
我愿意是急流,
山里的小河,在崎嶇的路上,
巖石上經過……
只要我的愛人
是一條小魚,在我的浪花中
快樂地游來游去
注意:
如果想結束當前引用返回到上一級的引用,可以先使用空行來結束當前引用,再使用與想返回一級相同數(shù)量的>符號來實現(xiàn)。
例如:
Markdown語言:
> 我愿意是急流,
山里的小河,
> > 在崎嶇的路上,
巖石上經過……
> > > 只要我的愛人
是一條小魚,
> > > > 在我的浪花中
快樂地游來游去
> > 在我的浪花中
快樂地游來游去
得到的顯示為:
我愿意是急流,
山里的小河,在崎嶇的路上,
巖石上經過……只要我的愛人
是一條小魚,在我的浪花中
快樂地游來游去
在我的浪花中
快樂地游來游去
5.超鏈接和錨點
Markdown語法提供了三種超鏈接形式:行內式、參考式和自動鏈接。
5.1行內式超鏈接
行內式超鏈接形式是最常用的,語法如下(鏈接標題一項可有可無):
[鏈接文字](鏈接地址 "鏈接標題")
鏈接地址和鏈接標題之間有一個空格。
例如:
Markdown語言:
歡迎訪問[微博](https://weibo.com/);
快速進入[簡書](http://www.itdecent.cn/ "簡書"),開啟你的創(chuàng)作;
歡迎來到[知乎](https://www.zhihu.com/ "知乎"),發(fā)現(xiàn)更大的世界。
得到的顯示為:
歡迎訪問微博;
快速進入簡書,開啟你的創(chuàng)作;
歡迎來到知乎,發(fā)現(xiàn)更大的世界。
5.2參考式超鏈接
參考式超鏈接分為兩種,一種是鏈接文字和鏈接標記不同,一種是鏈接文字本身作為鏈接標記。
鏈接文字和鏈接標記不同時,語法分為兩部分,Markdown語法如下:
[鏈接文字][鏈接標記]
[鏈接標記]:鏈接地址 "鏈接標題"
鏈接文字本身作為鏈接標記時,語法也分為兩部分,如下:
[鏈接文字][]
[鏈接文字]:鏈接地址
例如:
Markdown語言:
每天我必須會訪問的三個網(wǎng)站[簡書][1]、[微博][2]、[知乎][3],
除了這三個必須訪問的網(wǎng)站,還會訪問[喜馬拉雅FM][]、[書法之家][]等。
[1]:http://www.itdecent.cn/
[2]:https://www.weibo.com/ "微博"
[3]:https://www.zhihu.com/ "知乎"
[喜馬拉雅FM]:https://www.ximalaya.com/
[書法之家]:http://www.sfzj123.com/m
得到的顯示為:
每天我必須會訪問的三個網(wǎng)站簡書、微博、知乎,
除了這三個必須訪問的網(wǎng)站,還會訪問喜馬拉雅FM、書法之家等。
注意:和所有編程語言一樣,Markdown語法中所有的字母和符號都必須是半角符號。
5.3自動鏈接
自動鏈接常用來處理網(wǎng)址和郵箱地址等,只需要用<>將網(wǎng)址或者郵箱包括起來就可以了。
例如:
Markdown語言:
<http://www.itdecent.cn/>
<https://www.weibo.com/>
<gyf_seu@163.com>
得到的顯示為:
http://www.itdecent.cn/
https://www.weibo.com/
gyf_seu@163.com
6.分割線
你可以在一行中使用三個以上的*、-和_來建立一個分割線,行內不能有其他字符。也可以在這三種符號之間加入空格,不影響渲染效果。
例如:
Markdown語言:
---
- - -
--------
***
* * *
___
_ _ _ _ _
得到的顯示為:
這些不同的語法得到的渲染效果都是相同的。
7.圖像
簡書Markdown圖片的創(chuàng)建方式與超鏈接相似,最常用的方法就是行內式。
行內式的Markdown語法如下:
[圖片上傳失敗...(image-a73492-1543568295086)]
例如:
行內式Markdown語言:

得到的顯示為:

8.表格
表格語法說明:
- 1. 第一行為表頭,第二行為分割行(用來分開表頭和表格正文行),第三行及以后為正文行;
- 2. 列與列之間使用符號
|隔開;
- 3. 第二行可以為不同的列指定對齊方向。
例如:
參考式Markdown語言:
|姓名|性別|年齡|
|- | :-:| -----|
|小明|男|5|
|大黃|男|6|
|小紅|女|4|
和:
|項目|價格|數(shù)量|
|---|:--:|--:|
|計算機|\$1600|5|
|手機|\$12|12|
|管線|\$1|234|
得到的顯示為:
| 姓名 | 性別 | 年齡 | 出生地 |
|---|---|---|---|
| 小明 | 男 | 5 | 北京 |
| 大黃 | 男 | 6 | 上海 |
| 小紅 | 女 | 4 | 深圳 |
和:
| 項目 | 價格 | 數(shù)量 |
|---|---|---|
| 計算機 | $1600 | 5 |
| 手機 | $12 | 12 |
| 管線 | $1 | 234 |
需要值得說明的是:
- 1. 兩個符號
|之間,除了需要顯示的內容外,可以有空格,空格不影響渲染效果;
- 2. 第二行使用
:來指定列的對齊方向,默認居左顯示。
9.待辦事宜Todo列表
Markdown語言中可以使用帶有[ ]或[x](未完成或已完成)的列表語法撰寫一個待辦事宜列表,并且支持子列表嵌套以及混用Markdown語法.
例如:
Markdown語言:
- [ ] **今天的工作**
- [ ] 做office
- [ ] 畫圖
- [x] 辦簽證
- [x] 辦理護照
- [x] 拍照
- [x] 公證
得到的顯示為:
- [ ] 今天的工作
- [ ] 做office
- [ ] 畫圖
- [x] 辦簽證
- [x] 辦理護照
- [x] 拍照
- [x] 公證
注意:語法中可以使用4個空格(一次縮進)來表示上下級從屬關系。
10.注腳
在需要添加注腳的文字后邊使用[^keyword]來添加注腳。
語法如下:
[^keyword1]
[^keyword2]
[^keyword3]
[^keyword1]:注腳釋義。
[^keyword2]:注腳釋義。
[^keyword3]:注腳釋義。
例如:
Markdown語言:
這是一個注腳[^footnote]的樣例。
這是第二個注腳[^footnote2]的樣例。
使用Markdown[^2]可以提高書寫效率。
[^footnote]:這個注腳只是個例子;
[^footnote2]:這個注腳也是個例子;
[^2]:這個注腳還是個例子;
得到的顯示為:
這是一個注腳[1]的樣例。
這是第二個注腳[2]的樣例。
使用Markdown[3]可以提高書寫效率。
注意:
- 注腳前必須有對應的注腳名字(keyword);
- 兩個注腳之間必須要空一行,否則會失效;
- 所有的注腳在渲染結果中都會被自動移到文末。
11.LaTeX公式
11.1行內公式
在Markdown語言中,用$來表示行內公式,例如質能守恒方程可以用一個很簡潔的方程式來表達。
例如:
Markdown語言:
$E=mc^2$
得到的顯示為:
11.2整行公式
Markdown語言中用$$表示整行公式.
例如:
Markdown語言:
$$\sum_{i=1}^n a_i=0$$
$$f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 $$
$$\sum^{j-1}_{k=0}{\widehat{\gamma}_{kj} z_k}$$
得到的顯示為:
訪問 MathJax 參考更多使用方法。
12.代碼
Markdown支持四十一種編程語言的語法高亮的顯示,行號顯示。
12.1單行代碼
單行代碼的顯示,需要借助 ` 符號來實現(xiàn),在單行代碼的兩段分別使用一個。
例如:
Markdown語言:
`print 'I'm a good boy.`
得到的顯示為:
print 'I'm a good boy.
12.2代碼塊
代碼塊的顯示需要借助三個 ` 符號實現(xiàn),即在代碼塊的前后分別使用三個。
非代碼示例:
$ sudo apt-get install vim-gnome
Python 示例:
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
JavaScript 示例:
/**
* nth element in the fibonacci series.
* @param n >= 0
* @return the nth element, >= 0.
*/
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
document.write(fib(10));
由于簡書是Markdown原生編輯器衍生出來的一個版本,所以簡書編輯器對語法進行了適當?shù)男薷?,使得簡書編輯器更利于文章?chuàng)作。
很多Markdown語法在簡書編輯器中渲染不了,所以本文中只列舉了最常用最方便的語法。
時間倉促,多有不足,歡迎大家指正!