Markdown

Markdown,它是一种轻量级的标记语言,可以让你更加专注于内容的创作而非文字的排版,在程序员群体中使用广泛。我个人非常推荐使用Markdown,无论你是否是程序员,因为使用Markdown能够使你的笔记效率有极大的提升,他的语法也不算复杂,使用门槛很低。

下面是来自wikipedia对Markdown的描述:

Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。

由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,目前许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。如GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、简书等,甚至还能被用来撰写电子书。

本文只介绍一些常用的语法,掌握了本文介绍的语法,个人认为,基本能够胜任90%以上对Markdown的使用需求了,大多是需求无非就是写写文档和笔记嘛,如果要写得花里胡哨,还得是Word,毕竟Markdown并不是一个适合富文本编辑的工具。

需要准备什么

写Markdown,你并不需要准备什么花里胡哨的高级的工具,新建一个文本文件,把他命名为 hello.md,使用记事本打开它,输入如下内容:

# Hello World

Hello Markdown!

你就能得到你的第一个Markdown文档了,仅此而已。

经过渲染之后,以上文件就变成了下图的样子:

当然,工欲善其事必先利其器,有一个趁手的工具是十分有必要的,这里推荐几个

  • Typora:yyds没得说,用过都说好,最新版收费了但是作者很良心的把旧版的下载链接放在了官网
  • 语雀:阿里出品的一个文档管理软件,支持Markdown语法
  • Notion:同样是一款不错的笔记应用,支持Markdown语法
  • VSCode+插件:比较适合程序员

基础语法

标题

标题应该算是最常用的标签了吧,标题的语法也很简单

语法:

#+空格+标题内容

示例:

# 一级标题

## 二级标题

### 三级标题

#### 四级标题

##### 五级标题

###### 六级标题

效果:

其中,#的个数,代表这是几级标题,比如一级标题就是 #,二级标题就是 ##

引用块

语法:

在引用的段首添加 >+空格

示例:

> 我家门前有两棵树,一棵是枣树,另一棵也是枣树。——鲁迅

效果:

列表

无序列表

语法:

-+*+空格

示例:

- 无序列表
+ 无序列表
* 无序列表



- 无序列表1
- 无序列表1
- 无序列表1



+ 无序列表2
+ 无序列表2
+ 无序列表2



* 无序列表3
* 无序列表3
* 无序列表3

效果:

有序列表

语法:

数字+.+空格

示例:

1. 有序列表一
2. 有序列表二
3. 有序列表三

效果:

代码块

对于程序员来说这个算是很常用的功能了

有些人可能不知道什么是 反引号,这玩意就是 数字1键左边的那个符号

行内代码

语法:

反引号+行内代码+反引号

示例:

这是一段行内代码块`fmt.Println("hello markdown")`,你学会了吗?

效果:

代码块

语法:

反引号+反引号+反引号+语言

代码块

反引号+反引号+反引号

示例:

```go
package main

import "fmt"

func main() {
    fmt.Println("hello markdown")
}
```

效果:

链接

语法:

[链接内容](链接地址)

示例:

[kakkk's blog](https://blog.kakkk.net/)

效果:

kakkk's blog

图片

语法:

![图片标题](图片地址)

示例:

![kakkk](https://cdn.kakkk.net/img/kakkk.jpg)

效果:

kakkk

强调

语法:

*+强调内容+*

其中,*的个数代表强调的级数

一级强调变斜体,二级强调变粗体,三级强调变斜粗体

示例:

*一级强调*

**二级强调**

***三级强调***

效果:

分割线

语法:

在一行中,三个 -+*都能变成一条分割线

示例:

我是一条分割线

***

又是一条分割线

---

还是一条分割线

+++

效果:

表格

Markdown的表格能力较弱,不支持诸如表格合并等功能,但是,基本需求是可以满足的

语法&示例:

| 我是右对齐(第一列名称) | 我是居中(第二列名称) | 我是左对齐(第n列名称) |
| -----------------------: | :--------------------: | :---------------------- |
|                 啦啦啦啦 |        啦啦啦啦        | ...                     |

效果:

总结

咳咳,到了总结时间,总的来说,基本上日常使用的Markdown语法就这些,像公式之类的,或者是一些高级语法,比如流程图等等,感兴趣的可以自行学习,本文的内容基本涵盖了日程使用中需要用到的语法了。

关于练习,你可以试着用Markdown把本文的内容做出来,本文也确实是使用Markdown写的。

本文Markdown源码:

# Markdown不完全指北

## Markdown

Markdown,它是一种轻量级的标记语言,可以让你更加专注于内容的创作而非文字的排版,在程序员群体中使用广泛。我个人非常推荐使用Markdown,无论你是否是程序员,因为使用Markdown能够使你的笔记效率有极大的提升,他的语法也不算复杂,使用门槛很低。

下面是来自[wikipedia](https://zh.wikipedia.org/zh-cn/Markdown)对Markdown的描述:

> **Markdown**是一种轻量级标记语言,创始人为约翰·格鲁伯。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
>
> 由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,目前许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。如GitHub、Reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge、简书等,甚至还能被用来撰写电子书。

本文只介绍一些常用的语法,掌握了本文介绍的语法,个人认为,基本能够胜任90%以上对Markdown的使用需求了,大多是需求无非就是写写文档和笔记嘛,如果要写得花里胡哨,还得是Word,毕竟Markdown并不是一个适合富文本编辑的工具。

## 需要准备什么

写Markdown,你并不需要准备什么花里胡哨的高级的工具,新建一个文本文件,把他命名为`hello.md`,使用记事本打开它,输入如下内容:

```markdown
# Hello World

Hello Markdown!
```

你就能得到你的第一个Markdown文档了,仅此而已。

经过渲染之后,以上文件就变成了下图的样子:

![](https://cdn.kakkk.net/img/202112282144717.png)

当然,工欲善其事必先利其器,有一个趁手的工具是十分有必要的,这里推荐几个

- Typora:yyds没得说,用过都说好,最新版收费了但是作者很良心的把旧版的下载链接放在了官网
- 语雀:阿里出品的一个文档管理软件,支持Markdown语法
- Notion:同样是一款不错的笔记应用,支持Markdown语法
- VSCode+插件:比较适合程序员

## 基础语法

### 标题

标题应该算是最常用的标签了吧,标题的语法也很简单

**语法:**

`#`+`空格`+`标题内容`

**示例:**

```markdown
# 一级标题

## 二级标题

### 三级标题

#### 四级标题

##### 五级标题

###### 六级标题
```

**效果:**

![](https://cdn.kakkk.net/img/202112282200707.png)

其中,`#`的个数,代表这是几级标题,比如一级标题就是`#`,二级标题就是`##`

### 引用块

**语法:**

在引用的段首添加`>`+`空格`

**示例:**

```markdown
> 我家门前有两棵树,一棵是枣树,另一棵也是枣树。——鲁迅
```

**效果:**

![](https://cdn.kakkk.net/img/202112282204869.png)

### 列表

#### 无序列表

**语法:**

`-`或`+`或`*`+`空格`

**示例:**

```markdown
- 无序列表
+ 无序列表
* 无序列表



- 无序列表1
- 无序列表1
- 无序列表1



+ 无序列表2
+ 无序列表2
+ 无序列表2



* 无序列表3
* 无序列表3
* 无序列表3
```

**效果:**

![](https://cdn.kakkk.net/img/202112282213207.png)



#### 有序列表

**语法:**

`数字`+`.`+`空格`

**示例:**

```markdown
1. 有序列表一
2. 有序列表二
3. 有序列表三
```

**效果:**

![](https://cdn.kakkk.net/img/202112282216816.png)

### 代码块

对于程序员来说这个算是很常用的功能了

有些人可能不知道什么是`反引号`,这玩意就是`数字1`键左边的那个符号

#### 行内代码

**语法:**

`反引号`+`行内代码`+`反引号`

**示例:**

```markdown
这是一段行内代码块`fmt.Println("hello markdown")`,你学会了吗?
```

**效果:**

![](https://cdn.kakkk.net/img/202112282221236.png)

#### 代码块

**语法:**

`反引号`+`反引号`+`反引号`+`语言`

`代码块`

`反引号`+`反引号`+`反引号`

**示例:**

````markdown
```go
package main

import "fmt"

func main() {
    fmt.Println("hello markdown")
}
```
````

**效果:**

![](https://cdn.kakkk.net/img/202112282224332.png)



### 链接

**语法:**

`[链接内容](链接地址)`

**示例:**

```markdown
[kakkk's blog](https://blog.kakkk.net/)
```

**效果:**

[kakkk's blog](https://blog.kakkk.net/)

### 图片

**语法:**

`![图片标题](图片地址)`

**示例:**

```markdown
![kakkk](https://cdn.kakkk.net/img/kakkk.jpg)
```

**效果:**

![kakkk](https://cdn.kakkk.net/img/kakkk.jpg)

### 强调

**语法:**

`*`+`强调内容`+`*`

其中,`*`的个数代表强调的级数

一级强调变斜体,二级强调变粗体,三级强调变斜粗体

**示例:**

```markdown
*一级强调*

**二级强调**

***三级强调***
```

**效果:**

![](https://cdn.kakkk.net/img/202112282235170.png)



### 分割线

**语法:**

在一行中,三个`-`或`+`或`*`都能变成一条分割线

**示例:**

```markdown
我是一条分割线

***

又是一条分割线

---

还是一条分割线

+++
```

**效果:**

![](https://cdn.kakkk.net/img/202112282238008.png)



### 表格

Markdown的表格能力较弱,不支持诸如表格合并等功能,但是,基本需求是可以满足的

**语法&示例:**

```markdown
| 我是右对齐(第一列名称) | 我是居中(第二列名称) | 我是左对齐(第n列名称) |
| -----------------------: | :--------------------: | :---------------------- |
|                 啦啦啦啦 |        啦啦啦啦        | ...                     |
```

**效果:**

![](https://cdn.kakkk.net/img/202112282242020.png)

## 总结

咳咳,到了总结时间,总的来说,基本上日常使用的Markdown语法就这些,像公式之类的,或者是一些高级语法,比如流程图等等,感兴趣的可以自行学习,本文的内容基本涵盖了日程使用中需要用到的语法了。

关于练习,你可以试着用Markdown把本文的内容做出来,本文也确实是使用Markdown写的。
最后修改:2021 年 12 月 28 日
如果觉得我的文章对你有用,请随意赞赏