Markdown 是一种轻量级标记语言,用来编写文本文档,一般后缀名为.md。该语言在 2004 由约翰·格鲁伯(John Gruber)创建。

由于Markdown 语法简单,易读易写,变得越来越通用。目前很多的博客类型的网站都支持Markdown 语法来编写文档,例如CSDN知乎博客园简书等。

使用Markdown 语法,可以将自己的文章很容易(基本无需修改)的迁移到其它网站(只要这个网站支持Markdown 语法)。

0,编辑工具

Typora 是一款不错的Markdown 编辑工具,其展示风格优雅大方,阅读起来很舒适。

另外,也有很多在线编辑工具,在线工具方便简单,一般都分为两部分,左边是文档编辑区,右边是文档展示区,可以实时检查自己编写的是否正确。

你可以选择自己喜欢的,例如:

下面介绍Markdown 语法,其标记文字之间一般要有一个空格,例如一级标题:# 这是一级标题

1,标题

就像HTML 标签一样,Markdown 也有6 级标题:

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

其效果如下:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

2,目录

[TOC] 会自动为当前文档生成目录目录是根据当前文档中的标题来生成的。

[TOC] 写在文档的什么位置(一般是文档开头),目录就会插在文档的哪个位置。

需要注意的是,有些网站可能不支持这个功能。

3,文字修饰

Markdown 文档中,可以为文字添加加粗斜体删除线下划线,当然这些效果也是可以叠加的:

*文字斜体*
**文字加粗**
***文字斜体加粗***
~~文字删除~~
~~**文字加粗删除**~~
~~*文字斜体删除*~~
<u>文字下划线使用HTML u 标签</u>

其效果如下:

文字斜体

文字加粗

文字斜体加粗

文字删除

文字加粗删除

文字斜体删除

文字下划线使用HTML u 标签

4,分割线

分割线使用三个连续的*-,如下:

***
---

其效果如下:



5,列表

5.1,有序列表

有序列表使用数字表示:

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

其效果如下:

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

5.2,无序列表

无序列表可以使用+-* 表示,使用任意一种均可:

+ 无序列表1
+ 无序列表2
+ 无序列表3 - 无序列表1
- 无序列表2
- 无序列表3 * 无序列表1
* 无序列表2
* 无序列表3

其效果如下:

  • 无序列表1
  • 无序列表2
  • 无序列表3

5.3,待办列表

待办列表 可以表示任务的处理状态,-[]表示待办状态,-[X] 表示已办状态:

 - [ ] 待办任务1
- [ ] 待办任务2
- [x] 已办任务

其效果如下:

  • [ ] 待办任务1
  • [ ] 待办任务2
  • [x] 已办任务

需要注意的是,有些网站可能不支持待办列表

5.4,列表嵌套

需要嵌套列表时,在子列表之前添加四个空格即可:

- 无序列表
- 子列表是无序列表
- 子列表是无序列表 1. 有序列表
1. 子列表是有序列表
2. 子列表是有序列表

效果如下:

  • 无序列表

    • 子列表是无序列表
    • 子列表是无序列表
  1. 有序列表

    1. 子列表是有序列表
    2. 子列表是有序列表

6,引用

引用一段文字使用符号>

> 这是一段引用

效果如下:

这是一段引用

引用还分多级,一个> 表示一级:

> 一级引用
>> 二级引用
>>> 三级引用
>>>> 四级引用
>>>>> 五级引用

效果如下:

一级引用

二级引用

三级引用

四级引用

五级引用

7,代码块

Markdown 支持两种代码块,一种是行内代码块,一种是多行代码块

行内代码块用反引号``(即Tab 键上边那个键)引住,会高亮显示。

多行代码块支持多种编程语言高亮:

C 语言代码高亮:

```c

// C语言代码

```

效果如下:

// C语言代码
int main()
{
printf("hello world.\n");
return 0;
}

C++ 语言代码高亮:

```cpp

// c++ 语言代码

```

效果如下:

// c++ 语言代码
int main()
{
cout << "hello world." << endl;
return 0;
}

Java 语言代码高亮:

```java

// Java 代码

```

效果如下:

// Java 代码
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world.");
}
}

Python 语言代码高亮:

```python

# python 语言代码

```

效果如下:

# python 语言代码
print "hello world."

还支持其它语言代码,这里就不一一举例了。

8,表格

Markdown 表格的书写方法非常简单,用竖线|来分隔不同的单元格,使用 横线- 来分隔表头和其他行。

如下表示一个三行三列的表格:

|表头1  | 表头2 |表头3|
|--|--|--|
| 第1行第1列 | 第1行第2列 |第1行第3列|
| 第2行第1列 | 第2行第2列 |第2行第3列|

效果如下:

表头1 表头2 表头3
第1行第1列 第1行第2列 第1行第3列
第2行第1列 第2行第2列 第2行第3列

使用冒号: 来表示表格中内容的对齐方式

  • 冒号在左边:表示左对齐
  • 冒号在右边:表示右对齐
  • 两边都有冒号:表示居中对齐
| 左对齐 | 右对齐 | 居中对齐 |
| :--| --: | :--: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |

效果如下:

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

9,超级链接

9.1,超级链接

超级链接的表示方式如下:

[超级链接文字](网址)

使用中括号小括号表示,文字描述写在中括号内,网址写在小括号内,例如:

[这是百度网址](https://www.baidu.com)

效果如下:

这是百度网址

9.2,直接显示连接

如果想要直接显示连接地址,也可以使用<> 符号将连接地址括住:

<https://www.baidu.com>

效果如下:

https://www.baidu.com

9.3,使用锚点

使用锚点,首先是先定义锚点,然后再引用锚点

定义锚点是在一个标题 的后边加上{#锚点名称},如下:

### 这是一个锚点{#here}

然后使用如下格式使用锚点中括号内是锚点描述小括号内是锚点名称

跳转到[锚点](#here)

10,图片

插入图片有四种方式,分别是:

  • 插入本地图片
  • 插入网络图片
  • 把图片存入Markdown 文件
  • 使用HTML <img> 标签

引入图片的基本格式是![描述](路径),你可以选择适合自己的方式。

10.1,插入本地图片

语法如下(描述文字可不写):

![描述图片的文字](图片本地路径)

例如:

![这是一张本地图片](/home/picture/name.png)

10.2,插入网络图片

插入网络图片,首先这张图片要在网上,并且能够正常访问,如果是自己的图片,则需要先将自己的图片传到网上。

语法如下(描述文字可不写):

![描述图片的文字](图片网络地址)

例如:

![这是一张网络图片](http://ww2.sinaimg.cn/small/6aee7dbbgw1esvkj19bqmj20e80e874z.jpg)

10.3,把图片存入Markdown 文件

这种方式需要先将图片转换成base64 编码 格式,然后将图片内容放入Markdown 文档中(所以,如果图片很大的话,Markdown 文档也会变得很大),最后再引用图片。

语法如下(描述文字可不写),第一行为图片的引用,第二行为图片的声明(一般可写在文档的最后):

![描述图片的文字][图片声明]
[图片声明]:图片base64 编码内容

例如:

![描述][base64str]
[base64str]:data:image/png;base64,iVBORw0......

10.4,使用HTML <img> 标签

Markdown 中支持HTML <img> 标签 来显示图片,当然也可以使用HTML 属性,来调节图片大小等:

<img src="图片地址">

11,文字上标下标

上标使用<sup>,下标使用<sub>,如下:

下标:X<sub>2</sub>
上标:Y<sup>2</sup>
下标文字: X<sub>上标文字</sub>
上标文字: Y<sup>上标文字</sup>

效果如下:

下标:X2

上标:Y2

下标文字: X上标文字

上标文字: Y上标文字

12,文字缩写

文字缩写使用HTML <abbr> 标签,如下所示:

<abbr title="Hyper Text Markup Language">HTML</abbr> 是一种标记语言。

效果如下:

HTML 是一种标记语言。

13,注脚

使用注脚也是分两步,一是定义注脚,二是使用注脚。

定义注脚的语法如下:

[^注脚名称]:注脚内容

中括号内有一个上尖括号^,后边紧跟注脚名称,中括号后边是一个冒号:,再后边是注脚内容。一般注脚定义会被显示在文档的最后,多个注脚定义不能写在同一行。

使用注脚时,只需要在需要注解的文字后边加上[^注脚名称]即可,如下:

这是一个注脚示例[^注脚名称]

完整示例:

注脚示例[^note]
注脚示例二[^note2] [^note]:这是注脚示例内容
[^note2]:这是注脚示例内容2

效果如下:

注脚示例[1]

注脚示例二[2]

14,Markmap 思维导图

Markmap 是一个支持Markdown语法的思维导图工具,通过Markmap,你可以使用Markdown 语法来生成思维导图。

Markmap 开源免费,简单易用。你可以在这里 将你写的Markdown 文档转换为思维导图。

Markmap 中支持的Markdown 符号有:

  • 标题符号#
  • 无须列表符号-
  • 分隔符---
  • 超级链接符号[]()<>
  • 文字修饰,例如加粗斜体删除线
  • 代码块,包括行内代码块多行代码块

你可以将如下Markdown 文档在这里 转换为思维导图:

# Markmap 支持

## 标题符号

- 一级标题
- 二级标题
- 三级标题 ## 无序列表 - 列表1
- 列表2 ## 分隔符 - 第一部分
---
- 第二部分
---
- 第三部分
- 第四部分 ## 超级链接 - <https://www.google.com>
- [Google](https://www.google.com) ## 文字修饰 - *斜体*
- **加粗**
- ~~删除线~~ ## 代码块 - `单行代码块`
-
\```shell
多行代码块1
多行代码块2
多行代码块3
\```

其效果如下:

(完。)


  1. 这是注脚示例内容 ↩︎

  2. 这是注脚示例内容2 ↩︎

如何使用Markdown 编写文档的更多相关文章

  1. 使用 Typora 编辑器运用 Markdown 的语法编写文档

    Markdown 介绍 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档. Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建. ...

  2. 【文档】使用Sphinx + reST编写文档

    0 前言 写文档是开发人员日常工作中的一项重要内容,除了word之外,我更偏爱使用标记语言(Markup Language).使用标记语言,可以利用简单.免费的文本编辑器(记事本,vim, emacs ...

  3. 如何写Markdown格式文档

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

  4. 第四十四条:为所有导出的API元素编写文档注释

    简而言之,要为API编写文档,文档注释是最好,最有效的途径.对于所有可导出的API元素来说,使用文档注释应该被看作是强制性的.要 采用一致的风格来遵循标准的约定.记住,在文档注释内部出现任何的HTML ...

  5. 使用Sphinx编写文档

    操作系统 : Windows7_x64 Python 版本 : 2.7.10 Sphinx 版本 : 官方网址:http://sphinx-doc.org github地址: https://gith ...

  6. Effective Java 第三版——56. 为所有已公开的API元素编写文档注释

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  7. 利用Sphinx编写文档

    利用Sphinx编写文档 1.Sphinx简介和使用理由 ================= Sphinx是一个用Python语言编写而成的文档编写工具.用Sphinx编写文档的时候,用户只需要编写符 ...

  8. MARKDOWN使用文档

    ISSUE引用 引用当前项目内的ISSUE #1 markdown写法 #1 引用当前命名空间下的其他项目内的ISSUE projectname#1 sofa_ta#1 markdown写法 sofa ...

  9. 学会Markdown不仅可以用来编写文档,还可以制作自己的简历,真香!

    程序员的简历要简洁明了,不要太多花哨的修饰,突出重点即可,使用markdown就可以很好的满足写一份简历的需求 Markdown 简历模板 这里我贡献一下我自己的markdown简历模板,简历效果如下 ...

随机推荐

  1. [教程]KALI LINUX 2.0 2019 更新国内源

    2019年最新版本KALI 为 KALI 2019.1 下载地址:https://www.kali.org/downloads/ 有的新入门的朋友可能会问,为什么每次都无法手动更新 例如:Update ...

  2. D. Fight with Monsters

    D. Fight with Monsters time limit per test 1 second memory limit per test 256 megabytes input standa ...

  3. 悟懂MapReduce,不纠结!

    在<谷歌 MapReduce 初探>中,我们通过统计词频的 WordCount 经典案例,对 Google 推出的 MapReduce 编程模型有了一个认识,但是那种认识,还只是停留在知道 ...

  4. WEB缓存系统之varnish缓存项修剪

    前文我们聊了下varnish的状态引擎和不同类型的变量对应该使用在那个状态引擎中,以及每个状态引擎的对应处理事务:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/ ...

  5. JS中this指向问题和改变this指向

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...

  6. 1042 Shuffling Machine (20分)(水)

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  7. PTA数据结构与算法题目集(中文) 7-32

    PTA数据结构与算法题目集(中文)  7-32 7-32 哥尼斯堡的“七桥问题” (25 分)   哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七 ...

  8. ACL,NAT的使用

     项目练习 练习一: 练习目的:通过配置路由器的dhcp功能使pc自动获取ip地址. Router>enable Router#configure terminal Router(config) ...

  9. 在tap的碎片上与活动进行绑定实现点击事件(日期时间选择以及按钮跳转时间)

    主要是掌握怎样在Fragment类型的.java文件中实现对于文本框或者按钮点击事件的触发操作. 相应的出发时间都是之前的代码.主要是怎样在Fragment怎样实现相应的操作主要是对于getActiv ...

  10. (js描述的)数据结构[集合结构](6)

    (js描述的)数据结构[集合结构](6) 一.集合结构特点 1.集合中的元素不能重复. 2.集合是无序的. 二.集合的代码实现 function Set() { this.items = {} //1 ...