什么是Markdown?

Markdwon 是一种轻量级标记语言,由Aaron Swartz和John Gruber共同设计。它以纯文本形式(易读、易写、易更改)编写文档,并最终以HTLM格式发布。Markdown也可以理解为将以Markdown语法编写的语言转换成HTML内容的工具。

Aaron Swartz的传奇一生

  • 14岁参与RSS 1.0规格标准制订。
  • 2004年入读斯坦福大学,之后退学。
  • 2005年创建 Infogami,之后与Reddit合并成为其合伙人。
  • 2010年创立示进会(Demand Preogress),积极参与禁止网络盗版法案(SOPA)活动,最终该提案被撤回。
  • 2011年7月19日,因被控从MIT和JSTOR下载480万篇学术论文并以免费形式上传于网络被捕。
  • 2013年1月自杀身亡。

Tips

注意:Markdown使用 # + * > _ 等符号来标记,符号后面必须跟上至少1个空格才会被语法识别。

Markdown语法

标题

Markdown的标题用’# ‘标记
在想要作为标题的文字开头加上1~6个#,依次表示一级到六级标题
举例:
# 一级标题
## 二级标题
### 三级标题

为了避免文字TOC出现混乱,本例不做输出演示。

换行

在行尾添加两个空格(spacebar)加一个回车(enter)表示换行:

列表

列表分为 无序列表 和 有序列表

无序列表

用 - + * 作为打头标记
举例:
+ 项目1
+ 项目2
+ 项目3
输出:

  • 项目1
  • 项目2
  • 项目3

有序列表

有序列表则使用数字加英文句点.来表示
举例:
1. 第一项
2. 第二项
3. 第三项
输出:

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

引用

引用以 > 来表示,引用中又支持多级引用、标题、列表、代码块、分割线等常规语法。(也就是说:引用里面可以加标题,列表,嵌套引用等等。)
举例:
> 引用自百度文库
>> 引用自网易云音乐
输出:

引用自百度文库

引用自网易云音乐

文字样式(字体)

*斜体文本*

**加粗文本**

*斜粗体文本*

\删除文本

` 底纹 `

< sub>下标文字< /sub>

< sup>上标文字< /sup>

< u>下划线文本< /u>

输出:

斜体文本

加粗文本

斜粗体文本

删除文本

底纹

下标文字 正常文字

上标文字 正常文字

下划线文本

图片与链接

链接

链接的形式: 内联 和 引用。这两种形式下链接文本的定界符都是 [中括号].
要创建内联链接, 只需在链接文本的右括号后面紧接一对圆括号. 圆括号里面放所需的 URL 链接, 还可以放一个 可选 的链接标题, 标题要用引号包围.

自动链接:直接使用\< >括起来 <yourlink.xyz>

链接: [ ]( ) [链接描述](链接的地址)

举例:

This is [an example](http://example.com/ “Title”) inline link.

This is an example \http://example.com

输出:

This is an example inline link.

This is an example http://example.com

图片

Markdown 使用了类似链接的语法来插入图片
在链接的语法前面加一个感叹号: !
也就是:

图片:![Alt text] (/path/to/img.jpg “Optional title”)

由于没有本地路径,此例子不做举例输出演示。

代码和代码块

代码行

引用的代码只有一行,可以用 ` 号将语句包起来。
举例:

`cout << “Hello world” //this is an example of C++ outputing hello word`

输出:

cout << "Hello world" //this is an example of C++ outputing hello word

代码块(段)

用一对\

将代码括起来,在第一个\`\`\`之后,空格输入语言名称即可高亮代码。
1
2
3
4
5
6
7
格式如下:

\``` [语言]

这里是代码​

\

举例:

``` C++

#include
int main()
{
using namespace std;
int x = 1;
x = x++; //x = x + 1
cout << x;
return 0;
}

```

输出:

1
2
3
4
5
6
7
8
9
#include<iostream>
int main()
{
using namespace std;
int x = 1;
x = x++; //x = x + 1
cout << x;
return 0;
}

分割线

在一行中使用三个或三个以上的 * 可以添加分隔线,中间可以插入空格,但是不能有其他字符。

举例:

***

输出:


高级应用

表格

表格用竖线|分割不同列,用以下标记设置对齐方式 (ATTENTION!必须) :
居左:—- 居中:—-: 居右—-:

举例:

|标题1|标题2|标题3|

|:—|:—:|—:|

|居左文本|居中文本|居右文本|

输出:

标题1 标题2 标题3
居左文本 居中文本 居右文本

脚注

使用[^number ]来定义脚注

举例:

这是一个脚注的例子[^ 1]

[^1 ]: 这里是脚注

输出:

这是一个脚注的例子[^1]

常用弥补Markdown的Html标签

字体大小和颜色

\< font face=”微软雅黑” color=”red” size=”6”>字体及字体颜色和大小
\< /font>
\< font color=”#0000ff”>字体颜色</ font>

字体及字体颜色和大小
字体颜色

文本对齐方式

< p align=”left”>居左文本< /p>
< p align=”center”>居中文本< /p>
< p align=”right”>居右文本< /p>

居左文本


居中文本


居右文本

任务列表

任务列表支持Markdown的字体格式,支持链接,支持有序和无序列表。
用- [ ]表示未完成
用- [x]表示完成

举例:

- [ ] links, formatting, and tags supported
- [x] list syntax required (any unordered or ordered list supported)
- [ ] this is a complete item
- [x] this is an incomplete item

输出:

  • links, formatting, and tags supported
  • list syntax required (any unordered or ordered list supported)
  • this is a complete item
  • this is an incomplete item

转义字符

转义字符就是想显示出Markdown语法内的标记字符,比如* _ - + 等。
这篇教程在举例部分,为了显示语法就用了很多转义字符。

转义字符用 \ 作为符号的前缀

在Visual Studio Code中编辑Markdown

在扩展中心(ctrl+shift+x)安装Markdown all in one插件就能很方便的编辑和预览Markdown文件。
快捷键如下:

Key Command
Ctrl + B 加粗
Ctrl + I 斜体
Alt + S 删除线
Ctrl + Shift + ] 标题 从一级到六级递增
Ctrl + Shift + [ 标题 从当前级到一级递减
Ctrl + M 数学公式环境
Alt + C Check/Uncheck task list item
Ctrl + Shift + V Markdown预览
Ctrl + K V Toggle preview to side

参考文档

本教程参考的文档如下:

https://markdown-zh.readthedocs.io/en/latest/
http://www.cycygogo.cn/2017/12/05/Markdown-Syntax/
https://www.jianshu.com/p/ccfd81fe77d2

后记

此Markdown教程尽可能简单的讲解了Markdown的语法,在字体及列表中,除了*
仍有很多其他标识符可以使用。本文只介绍了其中一种。

除了入门Markdown,本文也可留作日后语法备查。