Markdown使用总结

一、概念

Markdown 是 2004 年由 Aaron Swartz 和 John Gruber 共同设计的,有两层含义:

  1. 一种轻量级标记语言,它允许用纯文本格式(易读、易写)来编写文档,通过简易的标记,使文本具有一定的格式。

  2. 一种将纯文本转换为 HTML 的工具。

随着 Markdown 的发展,现在将 Markdown 文本(后缀为 .md 或 .markdown)转换为 HTML 或者其他形式的工具多种多样。

所以现在提到的 Markdown,主要是指 轻量级标记语言

二、发展

最初,Markdown 由 John Gruber 提出后,附带提供了一个将 Markdown 文本转换为 HTML 的解析工具,也叫 Markdown。

随着 Markdown 的流行,许多网站(如 GitHub)和编辑器(如 VSCode、Typora)开始支持 Markdown,并有了它们自己的 Markdown 实现和解析工具。这些多样的实现,使 Markdown 有很多衍生版本,扩展了 Markdown 的功能(如表格、脚注、内嵌 HTML 、数学公式等),并且可以解析成 HTML、Word、pdf 等多种格式。

我们把 John Gruber 规定的 Markdown 语法称为 Markdown 基本语法

由于没有明确的规范,导致各个 Markdown 实现上,虽然基本语法都兼容,但一些写法上却大不相同,比如:标题的标记和文本之间,有的实现要求留空格,有的又不需要留空格

# 标题1(留空格)

#标题1(不留空格)

把其他衍生版本功能所扩展的语法,称为 Markdown 扩展语法

不同衍生版本在一些支持的功能的实现上也不相同,比如 Typora 编辑器支持数学公式,但很多其他的实现却不支持这一扩展语法。

所以使用 Markdown 时,要注意我们是基于什么实现的,采用的什么解析工具。

三、基本语法

Markdown 的基本语法很简单,主要包括:

  • 块级元素:分级标题列表段落和换行区块引用代码区块水平分割线

  • 内联元素:强调符号链接图片

在标记和文本之间都最好留一个空格,以兼容不同的 Markdown 解析工具。

由于 Markdown 中特殊符号表示标记,所以要显示这些符号,需要用转义字符 \ 进行转义。

3.1 分级标题

分级标题有两种标记方式,如下:

(1)在文字下方用 = 和 - 分别表示一级标题和二级标题:

一级标题
========

二级标题
--------

(2)用 # 进行标记,可表示标题 h1 ~ h6:

# 一级标题

## 二级标题

### 三级标题

#### 四级标题

##### 五级标题

###### 六级标题

3.2 列表

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

无序列表用 *+ 或 - 进行标记,三者可混用,但建议统一:

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

有序列表用数字和 . 进行标记:

1. 有序列表
2. 有序列表
3. 有序列表

列表嵌套,仅需在前面加四个空格或一个制表符,如下:

1. 有序列表
    * 无序列表
    * 无序列表
2. 有序列表

3.3 段落和换行

段落是指一行或多行连续的文本,通过空行与其他内容分隔。

段落内强制换行,有两种方式:

(1)在行尾留两个空格,并按 Enter 键

(2)在行尾写 HTML 换行元素 <br>

3.4 区块引用

区块引用用 > 进行标记,同时可以嵌套引用,如下:

> 区块引用
> 区块引用
>> 嵌套引用
>>> 三层嵌套引用

在列表里用区块引用,需要在 > 前加四个空格,如下:

1. 列表
    > 区块引用
    > 区块引用

区块引用和段落类似,可以在里面写其他的 Markdown 语法,

区块引用的内容强制换行的方法,与段落内强制换行一样。

3.5 代码区块

代码区块有两种标记方式。

(1)通过 ``` 标记代码区块,首尾都需要有,并可以指定代码的语言,如下:

    ```javascript
    function f(){
        console.log('代码区块')
    }
    ```

(2)通过行首留四个空格,或一个制表符,如下:

    function f(){
        console.log('代码区块')
    }

3.6 水平分割线

水平分割线用三个及以上 *- 或 _ 进行标记,如下:

***
---
___

3.7 强调

强调包含 斜体粗体

(1)斜体用 * 或 _ 进行标记,文本前后各一个,如下:

*斜体*
_斜体_

(2)粗体也用 * 或 _ 进行标记,文本前后各两个,如下:

**粗体**
__粗体__

3.8 符号

符号用 ` 进行标记,文本前后各一个,如下:

`符号`

在表示一些标记符号时(如 ```),必须保留空格,如下:

` ``` `

3.9 链接

链接分为行内式和参考式。

(1)行内式,如下:

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

或者直接使用链接地址

<链接地址>

(2)参考式,如下:

[百度][1]

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

3.10 图片

图片和链接的形式相似,只是在前面加上一个 ! 标记,如下:

![图片名称](图片地址)

四、扩展语法

Markdown 的扩展语法主要包括:

字体脚注表格内联 HTML数学公式

其他还有扩展如:emoji 图标流程图序列图甘特图等,但基本不支持。

具体可参考:Cmd Markdown 简明语法手册

4.1 字体

字体包含 粗斜体删除线下划线

(1)粗斜体用 * 或 _ 进行标记,文本前后各三个,如下:

***粗斜体***
___粗斜体___

(2)删除线用 ~ 进行标记,文本前后各两个,如下

~~删除线~~

(3)下划线用内联 HTML 元素 <u> 实现,如下

<u>下划线</u>

4.2 脚注

脚注用来对文本进行额外的注明,格式如下:

[^要注明的文本]

[^要注明的文本]: 脚注内容

4.3 表格

表格通过 | 来分隔单元格,用 - 来分隔表头和表体,如下

|表头|表头|
|-|-|
|表体|表体|
|表体|表体|

另外可以设置表格的对齐方式,如下:

|左对齐|居中|右对齐|
|:-|:-:|-:|
|表体|表体|表体|
|表体|表体|表体|

4.4 内联 HTML

内联 HTML 允许在 Markdown 中直接写 HTML 代码,如下:

<div>块级元素</div>
<span>内联元素</span>
<a herf="https://www.baidu.com">百度链接</a>

4.5 数学公式

大多数 Markdown 的实现并不支持数学公式,少数(如 Typora 编辑器,以及在线网站 https://www.zybuluo.com/mdeditor)支持,如下:

$$
\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}
$$tep1}{\style{visibility:hidden}{(x+1)(x+1)}}
$$

(完)

posted @ 2020-08-06 00:50  X_peng  阅读(204)  评论(0编辑  收藏  举报