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. go语言学习基础-编译文件

    1.创建工程在go的src目录下,比如我的go目录为/Users/yinxin/go,我创建文件夹 test路径为/Users/yinxin/go/src/test; 2.创建文件 main.go , ...

  2. 关于 Vue 中 我对中央事线管理器的(enentBus)误解

    由于这段时间公司比较闲,就对vue 中的一些模糊的点做了一些加强,突然就想到了常挂在嘴边兄弟组件传值 我理解的兄弟组件的传值是可以跨理由传值的,比如我从http://localhost:8080/lo ...

  3. 技术再深入一点又何妨?一脸懵B的聊Actor

    记得上次深入 Resin 源码时,见到了Actor 字眼,当时主要从 Resin 中抽取关键架构,就屏蔽了 Actor 相关代码.未曾想这两天研究 flink 的运行架构以及源码,再次与 Actor ...

  4. 摩尔投票算法( Boyer-Moore Voting Algorithm)

    一.Majority Element题目介绍:给定一个长度为n的数组的时候,找出其中的主元素,即该元素在数组中出现的次数大于n/2的取整.题目中已经假定所给的数组一定含有元素,且主元素一定存在.一下是 ...

  5. Pytest系列(11)- 失败重跑插件pytest-rerunfailures详细使用

    如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 环境前提 以下先决条件才能使用py ...

  6. VSCode 初次写vue项目并一键生成.vue模版

    VSCode 写vue项目一键生成.vue模版 1.新建代码片段 文件-->首选项-->用户代码片段-->点击新建代码片段--取名vue.json 确定 2.配置快捷生成的vue模板 ...

  7. PHP程序员的能力水平层次(二)

    PHPer的定义:PHPer是以PHP程序编写为主要工作,其他方面略有涉及的一种职业人士,大家所说的程序猿. 对PHPer的等级划分 PHP 爱好者 (半个PHPer) PHP 初学者 (PHP Be ...

  8. git中常用命令的总结

    一.git stash  1.git  stash 保存当前工作进度,会把暂存区和工作区的改动保存起来.执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动. ...

  9. java 方法 在jvm中的调用

    java 某个类的几个对象,这些对象调用类中一个函数,是各自拥有自己的函数代码还是使用同一段代码?30 1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码 ...

  10. AtomicInteger的并发处理

    AtomicInteger的并发处理 博客分类: Effective Java   JDK1.5之后的java.util.concurrent.atomic包里,多了一批原子处理类.主要用于在高并发环 ...