MarkDown手册

做~自己de王妃 提交于 2019-12-27 12:35:59

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Markdown手册

 

Markdown概述

概述

Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建。

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。

Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档。

Markdown 编写的文档后缀为 .md 或者 .markdown。

用途

Markdown 能被使用来撰写电子书,如:Gitbook。

当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书、reddit、

Diaspora、Stack Exchange、OpenStreetMap 、SourceForge等。

Markdown 常用语法

常用语法

最常见的Markdown格式选项和键盘快捷键:

输出后的效果 Markdown 快捷键
Bold text Ctrl/⌘ + B
Emphasize text Ctrl/⌘ + I
Link title Ctrl/⌘ + K
Inline Code code Ctrl/⌘ + Shift + K
Image   Ctrl/⌘ + Shift + I
List * item Ctrl + L
Blockquote > quote Ctrl + Q
H1 # Heading  
H2 ## Heading Ctrl/⌘ + H
H3 ### Heading Ctrl/⌘ + H (x2)

Markdown 标题

标题能显示出文章的结构。

行首插入1-6个 # ,每增加一个 # 表示更深入层次的内容,对应到标题的深度由 1-6 阶。

# 标题

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

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

= 一级标题

我展示的是一级标题
=================

- 二级标题

我展示的是二级标题
-----------------

Markdown 文本样式

段落

Markdown 段落没有特殊的格式,直接编写文字就好,段落的换行是使用两个以上空格加上回车

当然也可以在段落后面使用一个空行来表示重新开始一个段落。

字体

Markdown 可以使用以下几种字体:

斜体

* 斜体文本

*斜体文本*

斜体文本

_ 斜体文本

_斜体文本_

斜体文本

加粗

** 粗体文本

**粗体文本**

粗体文本

__ 粗体文本

__粗体文本__

粗体文本

高亮

== 高亮文本

==高亮文本==  

==高亮文本==

粗斜体

*** 粗斜体

***粗斜体文本***

粗斜体文本

___ 粗斜体

___粗斜体文本___

粗斜体文本

分隔线

你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:

* 分割线

*********

- 分割线

----------

删除线

如果段落上的文字要添加删除线,只需要在文字的两端加上两个波浪线 ~~ 即可,实例如下:

~~删除线

~~删除线文本~~

删除线文本

下划线

下划线可以通过 HTML 的 <u>标签来实现:

u 下划线

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

下划线文本

脚注

脚注是对文本的补充说明。

[^脚注] 脚注

Markdown 脚注的格式如下:

[^要注明的文本]: 这是一段脚注

创建脚注 脚注。

[脚注]  这是一段脚注!!!

Markdown 列表

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

无序列表

无序列表使用星号(*)、加号(+)或是减号(-)作为列表标记:

* 无序列表

* 第一项
* 第二项
* 第三项
  • 第一项

  • 第二项

  • 第三项

+ 无序列表

+ 第一项
+ 第二项
+ 第三项
  • 第一项

  • 第二项

  • 第三项

_ 无序列表

- 第一项
- 第二项
- 第三项
  • 第一项

  • 第二项

  • 第三项

有序列表

有序列表使用数字并加上 . 号来表示

数字. 有序列表

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

第一项

第二项

第三项

列表嵌套

列表嵌套只需在子列表中的选项添加四个空格即可:

四个空格 列表嵌套

1. 第一项:
    - 第一项嵌套的第一个元素
    - 第一项嵌套的第二个元素
2. 第二项:
    - 第二项嵌套的第一个元素
    - 第二项嵌套的第二个元素

第一项:

  • 第一项嵌套的第一个元素

  • 第一项嵌套的第二个元素

第二项:

  • 第二项嵌套的第一个元素

  • 第二项嵌套的第二个元素

Markdown 区块

区块引用

Markdown 区块引用是在段落开头使用 > 符号 ,然后后面紧跟一个空格符号:

> 区块

> 区块引用
> 这是一个区块
> 这是一个区块

区块引用 这是一个区块 这是一个区块

另外区块是可以嵌套的,一个 > 符号是最外层,两个 > 符号是第一层嵌套,以此类推退:

>> 区块嵌套

> 最外层
> > 第一层嵌套
> > > 第二层嵌套

最外层

第一层嵌套

第二层嵌套

区块中使用列表

区块中使用列表实例如下:

> 数字. 区块列表

> 区块中使用列表
> 1. 第一项
> 2. 第二项
> + 第一项
> + 第二项
> + 第三项

区块中使用列表

  1. 第一项

  2. 第二项

  • 第一项

  • 第二项

  • 第三项

列表中使用区块

如果要在列表项目内放进区块,那么就需要在 > 前添加四个空格的缩进。

四个空格> 列表区块

区块中使用列表实例如下:

* 第一项
    > 这是一个区块
    > 这是一个区块
* 第二项
  • 第一项

    这是一个区块 这是一个区块

  • 第二项

Markdown 代码

单行代码

`` 单行代码

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

`printf()` 函数

printf() 函数

代码区块

``` 代码区块

代码区块使用 4 个空格或者一个制表符(Tab 键)

你也可以用 ``` 包裹一段代码,并指定一种语言(也可以不指定):

```javascript
$(document).ready(function () {
    alert('Hello World !');
});
​```

Markdown 链接

链接

链接使用方法如下:

[title](http://) 链接

[链接名称](链接地址)

这是一个链接 [百度](https://www.baidu.com)

这是一个链接 百度

<http://> 链接

直接使用链接地址:

<链接地址>
<https://www.baidu.com>

高级链接

链接也可以用变量来代替,文档末尾附带变量地址:
这个链接用 1 作为网址变量 [百度][1]
这个链接用 runoob 作为网址变量 [百度][baidu]
然后在文档的结尾为变量赋值(网址)

  [1]: http://www.baidu.com/
  [baidu]: http://www.baidu.com/

显示结果如下:

链接也可以用变量来代替,文档末尾附带变量地址: 这个链接用 1 作为网址变量 百度 这个链接用 runoob 作为网址变量 百度 然后在文档的结尾为变量赋值(网址)

[1]  http://www.baidu.com/ 

[baidu]  http://www.baidu.com/ 

Markdown 图片

图片

Markdown 图片语法格式如下:

![alt](http://) 图片

![alt 属性文本](图片地址)

![RUNOOB 图标](http://static.runoob.com/images/runoob-logo.png)

![alt](http:// "title") 图片

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

![RUNOOB 图标](http://static.runoob.com/images/runoob-logo.png "RUNOOB")
  • 开头一个感叹号 !

  • 接着一个方括号,里面放上图片的替代文字

  • 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上选择性的 'title' 属性的文字。

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

这个链接用 1 作为网址变量 [RUNOOB][1].
然后在文档的结尾位变量赋值(网址)

[1]: http://static.runoob.com/images/runoob-logo.png

Markdown 还没有办法指定图片的高度与宽度,如果你需要的话,你可以使用普通的 <img> 标签。

<img src="http://static.runoob.com/images/runoob-logo.png" width="50%">

Markdown 表格

表格

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

语法格式如下:

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

对齐方式

我们可以设置表格的对齐方式:

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

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

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

实例如下:

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

Markdown 高级

支持的 HTML 元素

不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。

目前支持的 HTML 元素有:<kbd> <b> <i> <em> <sup> <sub> <br>等 ,如:

使用 <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd> 重启电脑

转义

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

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

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

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

公式

当你需要在编辑器中插入数学公式时,可以使用两个美元符 $$ 包裹 TeX 或 LaTeX 格式的数学公式来实现。提交后,问答和文章页会根据需要加载 Mathjax 对数学公式进行渲染。如:

$$
\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix} 
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} &  \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} &  \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
$$

大括号

方法一:

$$ f(x)=\left\{
\begin{aligned}
x & = & \cos(t) \\
y & = & \sin(t) \\
z & = & \frac xy
\end{aligned}
\right.
$$

方法二:
$$ F^{HLLC}=\left\{
\begin{array}{rcl}
F_L       &      & {0      <      S_L}\\
F^*_L     &      & {S_L \leq 0 < S_M}\\
F^*_R     &      & {S_M \leq 0 < S_R}\\
F_R       &      & {S_R \leq 0}
\end{array} \right. $$

方法三:
$$f(x)=
\begin{cases}
0& \text{x=0}\\
1& \text{x!=0}
\end{cases}$$
基本数据类型数值型字符型布尔型基本数据类型= \begin{cases} 数值型& \\ 字符型& \\ 布尔型  \end{cases}

基本数据类型数值型字符型布尔型​

Markdown图表

横向流程图

```mermaid
graph LR
A[方形] -->B(圆角)
    B --> C{条件a}
    C -->|a=1| D[结果1]
    C -->|a=2| E[结果2]
    F[横向流程图]
​```
 

a=1

a=2

方形

圆角

条件a

结果1

结果2

横向流程图

竖向流程图

```mermaid
graph TD
A[方形] --> B(圆角)
    B --> C{条件a}
    C --> |a=1| D[结果1]
    C --> |a=2| E[结果2]
    F[竖向流程图]
​```

 

 

a=1

a=2

方形

圆角

条件a

结果1

结果2

竖向流程图

竖向标准流程图

```flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
​```
 

开始框处理框判断框(是或否?)输入输出框结束框子流程yesno

横向标准流程图

```flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op
​```
 

开始框处理框判断框(是或否?)输入输出框结束框子流程yesno

UML时序图

```sequence
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象A->对象B: 你真的好吗?
​```
 

对象A对象A对象B对象B对象B你好吗?(请求)对象B的描述对象A的描述(提示)我很好(响应)你真的好吗?

UML时序图复杂

```sequence
Title: 标题:复杂使用
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象B->小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C
Note right of C: 没人陪我玩
​```
 

标题:复杂使用对象A对象A对象B对象B小三小三CC对象B你好吗?(请求)对象B的描述对象A的描述(提示)我很好(响应)你好吗对象B找我了你真的好吗?我们是朋友没人陪我玩

编辑器

常用的Markdown 编辑器

OSX

VSCode

Atom

Byword

Mou

Typora

MacDown

RStudio

Linux

VSCode

Atom

Typora

ReText

UberWriter

RStudio

Windows

VSCode

Atom

CuteMarkEd

MarkdownPad2

Miu

Typora

RStudio

iOS

Byword

浏览器插件

MaDo (Chrome)

Marxico(Chrome)

高级应用

Sublime Text 3 + MarkdownEditing / 教程

附录

编辑器问题

关于Typora的markdown编辑器行间距过大、不一致的问题

解决方案: 在经过查阅资料发现,在Typora中 shift + enter 单回车 enter 双回车

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!