Markdown 简明语法手册

Markdown 简明语法手册

标准语法

1. 分级标题

使用 === 表示一级标题,使用 — 表示二级标题。

注意标题与下部符号之间无空行,否则符号行将变成分割线。

也可通过在行首加#表示不同级别的标题 (H1-H6),例如:# H1, ## H2, ### H3#### H4##### H5###### H6

示例代码(未展示效果):

这是一个一级标题
===============

这是一个二级标题
------------------------------

### 这是一个三级标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

2. 斜体和粗体

(标准强调语法)(参见高亮和删除线)

使用 *** 表示斜体和粗体。粗斜体可用***表示。

示例:

Markdown 源代码
*斜体***粗体*****粗斜体***

斜体粗体粗斜体

3. 链接

(参见插入图片)

3.1 普通链接

使用 [链接文本描述](链接地址) 为文字增加链接,或使用<>直接显示链接地址。

示例:

这是去往 多吉搜索 的链接。

Markdown 源代码
这是去往 多吉搜索 的链接。

3.2 自动链接

使用<>直接显示链接地址。

当输入一个格式正确的邮箱地址或 url 等链接时,Markdown 会自动将其转换为可访问的链接。

示例:

邮箱:[email protected]
链接:https://www.dogedoge.com

Markdown 源代码
邮箱:<[email protected]>
链接:<https://www.dogedoge.com>

3.3 引用链接

(参见注脚)
使用 [链接文本描述][链接引用] 引用链接

链接引用申明格式:
[链接引用名称]: 链接地址 “注释”

注释内容为非必填内容

示例:

各大搜索引擎如百度开始搜集用户隐私,进行定制性的广告推荐。人们开始关注搜索记录的隐私性,尝试使用新的搜索引擎以替代,多吉搜索就是用于替代主流搜索引擎的一次尝试,虽然搜索结果没有其他搜索引擎全面,但免除了广告的困扰,承诺“不追踪,不误导”。

Markdown 源代码 引用链接的定义可以放在文章任意位置,通常放在文末。
[bd]: https://www.baidu.com/ "百度一下,你就知道"
[doge]: https://www.dogedoge.com/ "DogeDoge 多吉搜索 — 不追踪,不误导"

4. 列表

4.1 无序列表

使用 *,+,- 均可表示无序列表。

理论上可以混用三种符号,效果完全一样。

示例:

  • 无序列表项 一
  • 无序列表项 二
  • 无序列表项 三
Markdown 源代码
- 无序列表项 一
* 无序列表项 二
+ 无序列表项 三

4.2 有序列表

使用数字和点表示有序列表。

错误的编号会自动纠正,如示例-有序列表3

示例:

  1. 有序列表项 一
  2. 有序列表项 二
  3. 有序列表项 三
Markdown 源代码
1. 有序列表项 一
2. 有序列表项 二
2. 有序列表项 三

4.3 列表嵌套

使用Tab键进行列表嵌套

示例:

  • 1、第一章
    • 1.1、第一节
      • 1.1.1、绪论
    • 1.2、第二节
      1. 哲学
      2. 数学
      3. 科学
  • 2、第二章
Markdown 源代码
- 1、第一章
    - 1.1、第一节
        - 1.1.1、绪论
    - 1.2、第二节
        1. 哲学 
        2. 数学
        3. 科学
- 2、第二章

5. 代码块(不推荐)

(参见加强的代码块)

5.1 行内代码块

使用 反引号 ` 包裹行内代码块。

示例:

整篇文章将简要阐述 markdown的语法。

Markdown 源代码
整篇文章将简要阐述 `markdown`的语法。

5.2 代码块

使用Tab键或4个空格键Space缩进以表示代码块。

示例:

#!/bin/bash
echo "Makedown"

6. 文字引用

使用>表示文字引用。

可以嵌套引用

示例:

引用层1

引用层2

Markdown 源代码
> 引用层1
>
> > 引用层2

7. 插入图片

(参见链接)

使用 ![描述](图片链接地址) 插入图像。

  1. 链接地址可为URI,也可为本地绝对/相对路径。
  2. 图片同样支持引用链接(参见引用链接)

示例:

抖音 Tiktok

Markdown 源代码
![抖音 Tiktok](https://img.lancdn.co/landian/public/thumb/TikTok.png)

扩展语法

扩展语法为后期新增,非标准语法,各解析器对语法可选支持,多数语法已被多数Markdown软件支持。

1. 表格(主流,推荐)

使用 | 作为列分隔符,使用|-|作为分割行划分表头和表体。在

每一行头尾的竖线是可以省略的,为了看起来更整齐,多数人会写上。

Markdown 允许我们指定表格中单元格的对齐方式,在分割行减号的左边加上冒号就表示左对齐,在右边加上冒号就表示右对齐,在两边都加上冒号则表示居中对齐。

注意:这种写法会同时改变表头和数据行的对齐方式。

示例:

项目 价格 数量
计算机 $1600 5
手机 $12 12
管线 $1 234
Markdown 源代码
| 项目   |   价格 | 数量 |
| ------ | -----: | :--: |
| 计算机 | $1600 |  5   |
| 手机   |   $12 |  12  |
| 管线   |    $1 | 234  |

2. 待办事宜 Todo 列表(主流,推荐)

(多数Markdown渲染器支持)

使用带有- [ ]- [x](未完成/已完成)项的列表语法撰写一个待办事宜列表,并且支持子列表嵌套以及混用Markdown语法,

示例:

  • Markdown标准语法
    • 标题
    • 斜体/粗体
    • 链接/图片
    • 列表
    • 代码块
    • 文字引用
  • 扩展语法
    • 表格
    • html格式
    • 流程图、甘特图绘制
Markdown 源代码
- [x] **Markdown标准语法**
    - [x] 标题
    - [x] 斜体/粗体
    - [x] 链接/图片
    - [x] 列表
    - [x] 代码块
    - [x] 文字引用
- [ ] **扩展语法**
    - [x] 表格
    - [x] html格式
    - [ ] 流程图、甘特图绘制

3. 目录生成(主流,推荐)

(多数Markdown渲染器支持)

使用[toc]自动根据分级标题生成目录信息。

4. 高亮和删除线

(非标准强调语法)(参见斜体和粗体)

4.1 高亮(兼容性相对较差)

(少数Markdown渲染器支持)
使用 == 表示高亮。

示例:

==此处是重点笔记==。

Markdown 源代码
==此处是重点笔记==。

4.2 删除线(不主流,但兼容性较好)

(多数Markdown渲染器支持)

使用 ~~ 表示删除。

示例:

这是一段错误的文本。

Markdown 源代码
~~这是一段错误的文本。~~

5. 注脚(主流,不推荐)

(多数Markdown渲染器支持)(参见引用链接)
使用 [^keyword] 在文中使用注脚。

脚注声明格式
[^脚注名]: 说明文字

可以在文章的最后或任意位置定义脚注,但渲染器仍一般将注脚防止在文章尾部。

示例:

这是一个文尾注脚^footnote样例。
这是一个文中注脚[^note]样例。

[^note]: 这是 文中注脚

Markdown 源代码
这是一个文尾注脚[^footnote]样例。
这是一个文中注脚[^note]样例。

[^note]: 这是 **文中注脚**[^footnote]: 这是**文尾注脚**。

6. 加强的代码块(主流,推荐)

(多数Markdown渲染器支持主流语言语法高亮,对于部分小众语言的支持并不是特别好,行号只有部分编辑器支持)(参见代码块)
不使用缩进(Tab键或4个空格键Space)表示代码块,使用 ``` 包裹代码块,在开始处可通过标注选定高亮的语言(无指定时,往往由渲染器自动解析)。支持多种编程语言的语法高亮及行号显示。

示例:

echo Hello

使用缩进解析代码,系统可能无法正确解析代码语言

console.log(“This is javascript!”)

7. LaTeX 公式(主流,推荐)

(多数Markdown渲染器支持)

7.1 行内公式

使用$包裹行内公式:

示例:

质能守恒方程: $E=mc^2$ 。

Markdown 源代码
质能守恒方程: $E=mc^2$ 。

7.2 块级公式

使用“双$符”$$ 包裹整行公式:

示例:

$$\sum_{i=1}^n a_i=0$$

$$f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 $$

访问 MathJax 参考更多使用方法。

Markdown 源代码
$$\sum_{i=1}^n a_i=0$$

$$f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 $$

8. 标签分类(兼容性较差,不推荐)

(少数Markdown渲染器支持)

在编辑区任意行的列首位置输入以下代码给文稿标签:

标签: 数学 英语 Markdown

或者

Tags: 数学 英语 Markdown

9. Mermaid 制图(主流,推荐)

绝大多数Markdown软件都兼容Mermaid语法,可以通过代码绘图。本文例举甘特图、流程图、序列图,伴随Mermaid生态逐渐丰富,支持的图表种类逐渐增多。

9.1 Gantt 甘特图

甘特图内在思想简单。基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况。它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比。

Mermaid源代码
gantt
    dateFormat  YYYY-MM-DD
    title       Adding GANTT diagram functionality to mermaid
    excludes    weekends
    %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)

    section A section
    Completed task            :done,    des1, 2014-01-06,2014-01-08
    Active task               :active,  des2, 2014-01-09, 3d
    Future task               :         des3, after des2, 5d
    Future task2              :         des4, after des3, 5d

    section Critical tasks
    Completed task in the critical line :crit, done, 2014-01-06,24h
    Implement parser and jison          :crit, done, after des1, 2d
    Create tests for parser             :crit, active, 3d
    Future task in critical line        :crit, 5d
    Create tests for renderer           :2d
    Add to mermaid                      :until isadded
    Functionality added                 :milestone, isadded, 2014-01-25, 0d

    section Documentation
    Describe gantt syntax               :active, a1, after des1, 3d
    Add gantt diagram to demo page      :after a1  , 20h
    Add another diagram to demo page    :doc1, after a1  , 48h

    section Last section
    Describe gantt syntax               :after doc1, 3d
    Add gantt diagram to demo page      :20h
    Add another diagram to demo page    :48h
gantt
    dateFormat  YYYY-MM-DD
    title       Adding GANTT diagram functionality to mermaid
    excludes    weekends
    %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)

    section A section
    Completed task            :done,    des1, 2014-01-06,2014-01-08
    Active task               :active,  des2, 2014-01-09, 3d
    Future task               :         des3, after des2, 5d
    Future task2              :         des4, after des3, 5d

    section Critical tasks
    Completed task in the critical line :crit, done, 2014-01-06,24h
    Implement parser and jison          :crit, done, after des1, 2d
    Create tests for parser             :crit, active, 3d
    Future task in critical line        :crit, 5d
    Create tests for renderer           :2d
    Add to mermaid                      :until isadded
    Functionality added                 :milestone, isadded, 2014-01-25, 0d

    section Documentation
    Describe gantt syntax               :active, a1, after des1, 3d
    Add gantt diagram to demo page      :after a1  , 20h
    Add another diagram to demo page    :doc1, after a1  , 48h

    section Last section
    Describe gantt syntax               :after doc1, 3d
    Add gantt diagram to demo page      :20h
    Add another diagram to demo page    :48h

更多语法参考:Mermaid 甘特图语法参考

9.2 Flowchart 流程图

Mermaid源代码
flowchart TB
    c1-->a2
    subgraph one
    a1-->a2
    end
    subgraph two
    b1-->b2
    end
    subgraph three
    c1-->c2
    end
    one --> two
    three --> two
    two --> c2
flowchart TB
    c1-->a2
    subgraph one
    a1-->a2
    end
    subgraph two
    b1-->b2
    end
    subgraph three
    c1-->c2
    end
    one --> two
    three --> two
    two --> c2

更多语法参考:Mermaid 流程图语法参考

9.3 Sequence 序列图

Mermaid源代码
sequenceDiagram
    autonumber
    Alice->>John: Hello John, how are you?
    loop HealthCheck
        John->>John: Fight against hypochondria
    end
    Note right of John: Rational thoughts!
    John-->>Alice: Great!
    John->>Bob: How about you?
    Bob-->>John: Jolly good!
sequenceDiagram
    autonumber
    Alice->>John: Hello John, how are you?
    loop HealthCheck
        John->>John: Fight against hypochondria
    end
    Note right of John: Rational thoughts!
    John-->>Alice: Great!
    John->>Bob: How about you?
    Bob-->>John: Jolly good!

更多语法参考:Mermaid 序列图语法参考

10. Html 标签(主流,推荐)

10.1折叠面板

本文中已大量使用,如需默认展开折叠内容,给details标签添加open布尔属性即可。即<details open>

HTML源代码
<details> <summary>标题</summary>
    内容 ...
</details>

10.2复杂表格

可使用 Html 标签实现部分 Markdown 难以实现的功能,譬如,你可以用 Html 写一个纵跨两行的表格:

HTML源代码
<table>
 <tr>
  <th rowspan="2">值班人员</th>
  <th>星期一</th>
  <th>星期二</th>
  <th>星期三</th>
 </tr>
 <tr>
  <td>李强</td>
  <td>张明</td>
  <td>王平</td>
 </tr>
</table>
值班人员 星期一 星期二 星期三
李强 张明 王平

11. 定义型列表(不推荐)

少见语法。要创建定义列表,需在第一行上键入术语。在下一行,键入一个冒号,后跟一个空格和定义。
该语法似乎对部分Markdown解析器实时渲染造成影响,使用不便。

Markdown源代码示例
名词 1
:   定义 1(左侧有一个可见的冒号和四个不可见的空格)

代码块 2
:   这是代码块的定义(左侧有一个可见的冒号和四个不可见的空格)

:        代码块(左侧有八个不可见的空格)
名词 1
定义 1(左侧有一个可见的冒号和四个不可见的空格)

Markdown 简明语法手册
http://blog.zhens.site/markdown/
作者
zhens
发布于
2021年1月27日
许可协议