Markdown基础语法

Markdown 简介

Markdown 是一种用来写作的轻量级标记语言, 用一些简单的标记, 来代替常见的排版格式, 它使我们专心于码字, 不必花太多精力在排版上.

Markdown 文档是纯文本文件, 直接在记事本里, 就可以编写 Markdown 文档, 但是 Markdown 文档中的标记需要 Markdown 解析器(或称为渲染器)才能变成成排版的样式, 很多 Markdown 编辑器内置了解析器, 在写 Markdown 文档的同时, 就可以预览排版格式了. 这里推荐几个比较不错的 Markdown 编辑器:

使用上述软件, 就可以进行 Markdown 的编写了. 在这些编辑器里写 Markdown 文档就好像在 Word 里写文档一样, 只不过需要使用 Markdown 标记语法来实现排版.

本文不会介绍 Markdown 的原理, 只需要知道, 使用上述编辑器, 配合相应的语法, 就可以写出有漂亮的排版格式的 Markdown 文档了.

下面是一些 Markdown 常用语法, 掌握这些语法, 就可以满足90%以上的使用场景. 如果想了解详细的文档, 可以在阅读过本文后, 参考:

关于 Markdown 的原理和扩展语法, 也可参考我的这篇文章: Markdown 扩展语法

标题

在 # 后面加一个空格, 然后写的文字, 会被渲染成标题样式. 共支持六级标题, 从 # 到 ######. 例如:

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

效果如下:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

段落 Paragraph

直接写的文字会形成段落, 一个 Markdown段落是由一个或多个连续的文本行组成, 它的前后要有一个或以上的空行(无论有多少个空行, 都会被解析成一个空行).

在文本中使用回车键换行, 最终不会被解析成换行. 如果在一个段落中需要换行, 需要按两个或以上的空格, 然后按回车键. 另外, 使用两个空格进行换行, 不会导致分段, 依然是同一段落.

文本样式

Markdown 中可以给文本添加样式:

  • 被 * 或 _ 包裹起来的文本会被渲染成斜体
  • 被 ** 或 __ 包裹起来的文本会被渲染成粗体
  • 被 ~~ 包裹起来的文本会被渲染出删除线

例如:

*这是斜体的文字*
**这是加粗的文字**
~~这是删除的文字~~

效果为:

这是斜体的文字
这是加粗的文字
这是删除的文字

Markdown 标准语法不支持下划线, 但是有些解析器支持特殊的语法, 这里不做介绍.

转义字符

如果文本中某些字符就是想要正常显示, 不希望被解析成有特殊含义的标记,
可以使用 \ 进行转义, 例如:

\*\*使用 \ 转义 * 号\*\*

由于文字两边的 * 号前面都加了"", "*" 不再用来表示粗体, 显示的效果为:

**使用 \ 转义 * 号**

列表

无序列表

在文字前面加 * 或者 - 或者 + , 然后输入空格, 再写文字, 就会变成无序列表, 例如:

* 列表项1
- 列表项2
+ 列表项3

效果为:

  • 列表项1
  • 列表项2
  • 列表项3

建议: 如无特殊需要, 最好用同一种列表表示符号.

有序列表

数字后面加个点(英文句号), 然后输入空格, 再写文字, 例如:

1. 列表项1
2. 列表项2
3. 列表项3

效果为:

  1. 列表项1
  2. 列表项2
  3. 列表项3

多级列表

列表可以使用两个空格或者tab键进行缩进, 形成多级列表:

* 一级列表项1
  * 二级列表项1
  * 二级列表项2
* 一级列表项2
  * 二级列表项1
  * 二级列表项2
  • 一级列表项1
    • 二级列表项1
    • 二级列表项2
  • 一级列表项2
    • 二级列表项1
    • 二级列表项2

列表段落

列表可以和段落结合起来, 甚至一个列表项里可以有多个段落, 例如:

* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
viverra nec, fringilla in, laoreet vitae, risus.

  This is the second paragraph in the list item. You're
only required to indent the first line. Lorem ipsum dolor
sit amet, consectetuer adipiscing elit

* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
Suspendisse id sem consectetuer libero luctus adipiscing.

效果为:

  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,

    This is the second paragraph in the list item. You're
    only required to indent the first line. Lorem ipsum dolor
    sit amet, consectetuer adipiscing elit

  • Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
    Suspendisse id sem consectetuer libero luctus adipiscing.

注意: 如果一个列表项里有多个段落, 第二个及以后的段落前面要有缩进. 虽然这是标准语法, 但是不建议一个列表项里有多个段落, 因为有的解析器有 bug, 解析的效果比较差.

引用

> 后面加一个空格, 然后写文字, 会被渲染成引用样式, 例如:

> 这段文字是引用  
> **在引用中换行同样可以使用两个空格, 也可以使用粗体**

效果为:

这段文字是引用
在引用中换行同样可以使用两个空格, 也可以使用粗体

Markdown 允许只在一整段前面加一个 > 来表示引用文字, 例如下面的语法也是正确的:

> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.

> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.

效果为:

This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.

Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.

引用中也可以使用其他 Markdown 标记, 例如:

> ## 这是一个标题
> 
> 1. 这是第一行列表项
> 2. 这是第二行列表项

效果为:

这是一个标题

  1. 这是第一行列表项
  2. 这是第二行列表项

同理, 引用由也可以使用引用, 渲染效果就是就是层层嵌套, 这里不再演示.

链接和图片

Markdown 中可以插入链接和图片.

普通链接

语法如下

[text](link)  

text 指的是显示出来的链接名称, 后面 () 里的是真正的链接地址
例如: 百度首页
如果不需要显示链接名称, 可以直接贴网址, 如:
百度首页: https://www.baidu.com

参考链接

如果一个链接在一篇文章中出现多次, 可以定义为参考链接, 语法如下:

首先需要定义参考链接, 语法为:

[链接id]:link

例如:

[baidu]:http://www.baidu.com

注意, 定义链接时, id 一定要唯一, 不能有两个一样的参考链接 id, 其次, 定义的链接上下一定要有空行, 最后, 定义的链接不会被显示出来.

定义好参考链接后, 就可以使用了, 使用时, 先用一个中括号表示链接文字, 后面再跟一个[], 里面写参考链接的 id, 例如:

[这是一个百度首页][baidu]

[这是另一个百度首页][baidu]

效果如下:

这是一个百度首页

这是另一个百度首页

图片

Markdown 中也支持插入图片, 语法如下:

![alt](image_link)

注意比链接多了个 !, alt 指的是图片的介绍, 后面()里是图片的地址 例如:

![百度logo](https://www.baidu.com/img/bd_logo1.png?where=super)

效果为:


bd_logo1.png

PS: 图片地址可以是网址, 也可以是文件的相对路径. 如:

./img/xxx.jpg

这表示 当前目录下的 img 目录中的 xxx.jpg.

Markdown 文档中的图片, 可以使用图片在本地的相对路径, 也可以把图片放在七牛云/微博上, 生成外链地址使用. 有些网站的 Markdown 编辑器(比如简书等), 有可能需要把图片上传到这些网站上才能使用.

图片参考链接

图片也可以使用参考链接的语法, 在参考链接的语法前面加 ! 即可, 如下:

![图片名称][图片�id]
[图片id]: url/to/image

使用方法和参考链接一样, 这里不再多说.

代码

Markdown 中可以插入代码.

行内代码 Inline code:

在文本中, 两个 ` 号(数字1左边的键) 中间的内容会被解析成代码.
例如: int i = 0;

Multi-line code:

一对 ``` 之间的内容会被解析成多行代码. 连续三个` 作为起始, 后面的内容会被解析成代码, 再以三个 ` 结尾. 这里无法演示具体写法, 直接看效果:

int i = 0;
boolean b = true;
for (; i < 10; i++) {
    // 注释
}

另外, 直接使用 tab 进行缩进, 后面的文字就会被解析成代码

int i = 0;
boolean b = true;

第一种方法可以设置代码语言类型, 直接在第一个``` 后面加语言名称即可, 如 java, javascript, html 等等. 但是如果只有 一两行代码, 使用第二种方式也挺方便.

表格 Table

表格的语法比较简单, 按照下面这种写法就可以被解析成表格:

First Header | Second Header
------------ | -------------
Content from cell 1 | Content from cell 2
Content in the first column | Content in the second column

显示效果如下:

First Header Second Header
Content from cell 1 Content from cell 2
Content in the first column Content in the second column

注意: 表格的语法对格式的要求很松散, 只需要用 | 把单元格隔开就行, 但是一定别忘了分隔表头和表格内容的那一行 -|-, 没有这一行的话无法解析成表格.

分割线

要插入一道分割线, 可以使用三个以上的星号, 减号, 或者下划线, 例如:

***
* * *
*****
---
- - -
---------------------------------------

上面任何一种方式都可以产生一道分割线, 这里不再演示效果了.

总结

上面就是常用的 Markdown 语法了, 前面也说了, 掌握这些语法, 就可以满足绝大多数的排版需求了. 有些 Markdown 编辑器支持很多扩展语法, 甚至有画流程图的语法, 对此我的态度是不建议使用. Markdown 的目的是为了让我们专心写作, 使用简单明了的排版即可, 复杂排版/流程图这种事情, 还是交给 Word 和专业的绘图软件去做吧.

我也会写一篇文章来介绍 Markdown 的原理, 以及一些实用的扩展语法, 有兴趣的同学可以看看, 多了解一些东西也不错.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • 标题 Markdown 支持两种标题的语法 1.第一种写法 是在行首插入 1 ~ 6 个 # ,对应到标题 1 到...
    佘樂阅读 254评论 0 0
  • 本文转自@younghz 主要内容 Markdown是什么?谁发明了这么个东西?为什么要使用它?怎么使用?都谁在用...
    Wynter_Wang阅读 440评论 0 1
  • << 访问 Wow!UbuntuNOTE: This is Simplelified Chinese Editio...
    Xiaosonl阅读 1,336评论 0 2
  • 146. LRU Cache 基本想法就是用一个双向链表加上一个hash(key, node), 节点的val等于...
    健时总向乱中忙阅读 100评论 0 0
  • 文/居里社 阳光下,五颜六色的花努力地盛开着,朝着太阳的方向。清风吹起了我的长发,仿佛就这样拂去了心头的尘埃,我坐...
    居里叶阅读 437评论 8 14