Markdown 语法简明指南

Markdown 是一种轻量级标记语言,它以纯文本形式(易读、易写、易更改)编写文档,并最终以 HTML 格式发布。通过简单的标记语法,它可以使普通文本内容具有一定的格式。相比所见即所得(WYSIWYG)编辑器,Markdown 可以让使用者摆脱排版的困扰,专心于写作。当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、掘金等。

标题

1、你可以使用 =- 语法来展示一级和二级标题

=- 语法格式如下:

这是一级标题
=================

这是二级标题
-----------------

展示效果如下:

这是一级标题

这是二级标题

2、使用 # 号语法

使用 # 号可表示 1-6 级标题,一级标题对应一个 # 号,二级标题对应两个 # 号,以此类推。

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

效果如下:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

段落

段落的前后要有空行,所谓的空行是指没有文字内容。
若想在段内强制换行的方式是使用两个以上空格加上回车(引用中换行不需要回车)。
当然也可以在段落后面使用一个空行来表示重新开始一个段落。

空行模式

这是一个段落。

这是另一个段落。

效果如下:

这是一个段落。

这是另一个段落。

空格换行模式

这是一个段落,后面带了两个空格。  
这是另一个段落。

效果如下:

这是一个段落,后面带了两个空格。
这是另一个段落。

字体

斜体

你只要给需要倾斜的文字左右分别用一个 *_ 号包起来就可以了。

*斜体文本*
_斜体文本_

效果如下:

斜体文本
斜体文本

粗体

你只要给需要倾斜的文字左右分别用两个 *_ 号包起来就可以了。

**粗体文本**
__粗体文本__

效果如下:

粗体文本
粗体文本

粗斜体

你只要给需要倾斜的文字左右分别用三个 *_ 号包起来就可以了。

***粗斜体文本***
___粗斜体文本___

效果如下:

粗斜体文本
粗斜体文本

删除线

你只要给需要倾斜的文字左右分别用两个 ~ 号包起来就可以了。

~~这段文本使用了删除线~~

效果如下:

这段文本使用了删除线

在文本段内使用

Markdown 的文本格式虽然不多但已经满足绝大部分的写作需求。虽然示例都是一段文本演示一个文本语法,但 Markdown 的文本语法是可以在一段文本内混合。

**月光如流水一般,静静地泻在这一片叶子和花上**。薄薄的青雾浮起在荷塘里。叶子和花*仿佛在牛乳中洗过一样*;又像笼着轻纱的梦。虽然是满月,天上却有一层淡淡的云,所以不能朗照;但我以为这恰是到了好处—— ___酣眠固不可少,小睡也别有风味的___ 。月光是隔了树照过来的,高处丛生的灌木,落下参差的斑驳的黑影,峭楞楞如鬼一般;弯弯的杨柳的稀疏的倩影,却又像是画在荷叶上。塘中的月色并不均匀;但光与影有着和谐的旋律,如~~梵婀玲~~上奏着的名曲。

效果如下:

月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。虽然是满月,天上却有一层淡淡的云,所以不能朗照;但我以为这恰是到了好处—— 酣眠固不可少,小睡也别有风味的 。月光是隔了树照过来的,高处丛生的灌木,落下参差的斑驳的黑影,峭楞楞如鬼一般;弯弯的杨柳的稀疏的倩影,却又像是画在荷叶上。塘中的月色并不均匀;但光与影有着和谐的旋律,如梵婀玲上奏着的名曲。

列表

Markdown 支持有序列表和无序列表。

无序列表

无序列表使用 *+- 作为列表标记。
注意:标记后面最少有一个空格制表符。若不在引用区块中,必须和前方段落之间存在空行。

* 星号标记第一项
* 星号标记第二项
* 星号标记第三项

+ 加号标记第一项
+ 加号标记第二项
+ 加号标记第三项

- 减号标记第一项
- 减号标记第二项
- 减号标记第三项

效果如下:

  • 星号标记第一项
  • 星号标记第二项
  • 星号标记第三项
  • 加号标记第一项
  • 加号标记第二项
  • 加号标记第三项
  • 减号标记第一项
  • 减号标记第二项
  • 减号标记第三项

有序列表

有序列表使用数字并加上 . 来表示。
注意:标记后面最少有一个空格制表符。若不在引用区块中,必须和前方段落之间存在空行。

1. 第一项
2. 第二项
3. 第三项

效果如下:

  1. 第一项
  2. 第二项
  3. 第三项

列表嵌套

列表嵌套只需在子列表中的选项前面添加两个以上空格即可:

- 一级无序列表内容
  + 二级无序列表内容
  + 二级无序列表内容
  + 二级无序列表内容

- 一级无序列表内容
  1. 二级有序列表内容
  2. 二级有序列表内容
  3. 二级有序列表内容

1. 一级有序列表内容
  * 二级无序列表内容
  * 二级无序列表内容
  * 二级无序列表内容

2. 一级有序列表内容
  1. 二级有序列表内容
  2. 二级有序列表内容
  3. 二级有序列表内容

效果如下:

  • 一级无序列表内容

    • 二级无序列表内容
    • 二级无序列表内容
    • 二级无序列表内容
  • 一级无序列表内容

    1. 二级有序列表内容
    2. 二级有序列表内容
    3. 二级有序列表内容
  1. 一级有序列表内容

    • 二级无序列表内容
    • 二级无序列表内容
    • 二级无序列表内容
  2. 一级有序列表内容

    1. 二级有序列表内容
    2. 二级有序列表内容
    3. 二级有序列表内容

待办事项

待办事项是列表的进阶用法,是在列表的基础上结合未完成 [ ] 与已完成 [x] 实现。
注意:待办事项是一个进阶语法,不同的 Markdown 编辑器对其支持程度不同。

- [x] 吃饭
- [x] 睡觉
- [ ] 打豆豆

效果如下:

  • 吃饭
  • 睡觉
  • 打豆豆

待办事项嵌套

- [ ] 日常
  1. [x] 吃饭
  2. [x] 睡觉
  3. [ ] 打豆豆
- [ ] 工作
  - [ ] Coding
  - [ ] 摸鱼
- [x] 思考人生
  - [x] 思考人生
    - [x] 思考人生
      - [x] 思考人生
  • 日常
    1. 吃饭
    2. 睡觉
    3. 打豆豆
  • 工作
    • Coding
    • 摸鱼
  • 思考人生
    • 思考人生
      • 思考人生
        • 思考人生

区块引用

Markdown 区块引用是在段落开头使用 > 符号 ,加上一个空格来表示。

> 区块引用
> 其他的引用内容

效果如下:

区块引用
其他的引用内容

引用嵌套

区块引用是可以嵌套的,你可以加两个 >>、三个 >>>,甚至 n>,这有点类似于引用回复的“盖塔”效果,一般情况下用不到这种特性。

> 第一层
>> 第一层嵌套
>>> 第二层嵌套
>>>>>>>>> 第九层~~妖塔~~嵌套

效果如下:

第一层

第一层嵌套

第二层嵌套

第九层妖塔嵌套

区块引用中使用其他标记

区块引用中可以混用其他的 Markdown 标记。

> 区块引用中使用其他的 **Markdown** 标记
> 1. **第一项**
> 2. ___第二项___
> + _第一项_
> + ~~第二项~~

效果如下:

区块引用中使用其他的 Markdown 标记

  1. 第一项
  2. 第二项
  • 第一项
  • 第二项

分割线

Markdown 中的分割线使用三个以上-* 表示。
注意-* 的多少并不影响分割线的样式。

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

效果如下:



链接

Markdown 的链接主要有两种形式:行内式和参考式。

行内式

行内式主要是以下两种写法,其中链接描述是可选的。

[链接名称](链接地址 "可选标题")
<链接地址 "可选标题">

实例如下:

[梦翼坊](https://xiangfa.org "点击访问梦翼坊")
这是一个网址<https://xiangfa.org>

效果如下:

梦翼坊
这是一个网址https://xiangfa.org

参考式

当一篇文章中多次涉及到相同的网址链接时,如果每处都使用完整的长链接,会使文章变得”臃肿“,甚至导致难以阅读。
此外,当你后期需要修改链接时,你需要找到页面内所有需要修改的链接并一一调整。
为了解决这类问题,你可以考虑使用参考式链接。

[链接名称][引用变量]

实例如下:

这篇使用指南在编写过程中参考了很多文章,比如[Github][github]、[菜鸟教程][1]以及[简书][2]。

[github]: https://github.com/younghz/Markdown
[1]: https://www.runoob.com/markdown/md-tutorial.html
[2]: https://www.jianshu.com/p/191d1e21f7ed

效果如下:

这篇使用指南在编写过程中参考了很多文章,比如Github菜鸟教程以及简书

图片

图片的使用方式跟链接很相似,或者说是在链接语法前多加了一个 !,具体语法如下:

![alt 属性文本](图片地址  "可选标题")

具体实例如下:

![梦翼坊 Logo](https://xiangfa.org/images/logo.svg "这是梦翼坊的 Logo")

效果如下:

梦翼坊 Logo

当然,你也可以像链接那样对图片网址使用变量。

这是梦翼坊的 Logo:![梦翼坊 Logo][logo]

[logo]: https://xiangfa.org/images/logo.svg

效果如下:

这是梦翼坊的 Logo:梦翼坊 Logo

表格

Markdown 制作表格使用 | 来分隔不同的单元格,使用一个以上 - 来分隔表头和其他行。

|  表头   | 表头  |
|  ----  | ----  |
| 单元格  | 单元格 |
| 单元格  | 单元格 |

效果如下:

表头 表头
单元格 单元格
单元格 单元格

我们可以通过 -: 的组合设置表格的对齐方式:

  • -: 设置内容和标题栏居右对齐
  • :- 设置内容和标题栏居左对齐
  • :-: 设置内容和标题栏居中对齐

注意- 的个数不会影响显示效果。

实例如下:

| 左对齐 | 居中对齐 | 右对齐 |
| :-----| :----: | ----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |

效果如下:

左对齐 居中对齐 右对齐
单元格 单元格 单元格
单元格 单元格 单元格

代码

代码可以分为行内区块、代码区块以及代码片段三种形式。

行内区块

如果是段落上的一个函数或片段的代码可以用反引号(`)把它包起来,比如:

在网页上可以使用 `alert('Hello World')` 函数进行页面提示

效果如下:

在网页上可以使用 alert('Hello World') 函数进行页面提示

代码区块

代码区块使用四个空格或者一个制表符(Tab 键)来表示。

    function say(text) {
      alert(text)
    }
    say('Hello World')

效果如下:

function say(text) {
  alert(text)
}
say('Hello World')

代码片段

目前很多 Markdown 编辑器都支持代码高亮,但常规的代码区块方式无法明确代码语言导致无法精确的代码高亮,因此代码片段的方式更适合用于代码高亮。代码片段的语法格式如下:

```语言类型
这里是具体的代码片段
```

实例如下:

```JavaScript
function say(text) {
  alert(text)
}
say('Hello World')
```

效果如下:

function say(text) {
  alert(text)
}
say('Hello World')

高级技巧

支持混合使用 HTML 标签

本文一开始就提到 Markdown 最终以 HTML 格式发布,因此你完全可以在 Markdown 里直接混用标准的 HTML 标签。

<u>在 Windows 操作系统中</u>,你可以使用 <code>Ctrl</code>+<code>Alt</code>+<code>Del</code> 重启电脑

效果如下:

在 Windows 操作系统中,你可以使用 Ctrl+Alt+Del 重启电脑

转义

Markdown 使用了很多特殊符号来表示特定的意义,如果需要显示特定的符号则需要使用转义字符,Markdown 使用反斜杠转义特殊字符:

**文本加粗**  
\*\* 正常显示星号 \*\*

效果如下:

文本加粗
** 正常显示星号 **

Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:

\   反斜线
`   反引号
*   星号
_   下划线
{}  花括号
[]  方括号
()  小括号
#   井字号
+   加号
-   减号
.   英文句点
!   感叹号

其他

不同的 Markdown 编辑器对 Markdown 的语法支持程度也不同,部分 Markdown 编辑器通过插件的方式可以支持公式流程图时序图甘特图等进阶语法。这些语法并不属于 Markdown 的基础语法,因此这里也不再展开叙述,你可以根据实际情况选择性的学习。

文章源码

本文介绍了 Markdown 的基础用法,当然你看到的这篇文章也完全是用 Markdown 编写,你可以在这里 查看当前文章的 Markdown 源码。

参考

此为原创文章,转载请注明出处