什么是 Markdown

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。
Markdown 编写的文档可以导出 HTML 、Word、图像、PDF等多种格式的文档。
Markdown 编写的文档后缀为 .md, .markdown。

Markdown 语法


Markdown 标题

使用 # 号标记

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

  • 语法
  1. # 一级标题
  2. ## 二级标题
  3. ### 三级标题
  4. #### 四级标题
  5. ##### 五级标题
  6. ###### 六级标题
  • 效果

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

Markdown 段落

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

字体

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

  • 语义
  1. *斜体*
  2. **粗体**
  3. ***粗斜体***
  • 效果

斜体
粗体
粗斜体

分隔线

一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。
下面每种写法都可以建立分隔线:

  • 语义
  1. ***
  2. ---
  3. ___
  • 效果



删除线

在文字的两端加上两个波浪线 ~~

  • 语义
  1. ~~删除线~~
  • 效果
    ~删除线~

脚注

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

  • 语义
  1. [^脚注]:脚注内容
  • 效果
    原生语法不支持

一页纸markdown语法 - 图1

Markdown 列表

Markdown 支持有序列表、无序列表、列表嵌套、复选框。

有序列表

  • 语义
  1. 1. 第一项
  2. 2. 第二项
  3. 3. 第三项
  • 效果
  1. 第一项
  2. 第二项
  3. 第三项

有序列表

  • 语义
  1. * 第一项
  2. * 第二项
  3. * 第三项
  • 效果

  • 第一项

  • 第二项
  • 第三项

列表嵌套

  • 语义
  1. 1. 第一项:
  2. - 文本
  3. - 文本
  4. 2. 第二项:
  5. - 文本
  6. - 文本
  • 效果
  1. 第一项:
    • 文本
    • 文本
  2. 第二项:
    • 文本
    • 文本

复选框

  • 语义
  1. - [ ] 列表1
  2. - [x] 列表2
  3. - [ ] 列表3
  • 效果
    原生语法不支持

一页纸markdown语法 - 图2

Markdown 区块

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

  • 语义
  1. > 引用
  • 效果

引用

嵌套

  • 语法
  1. > 引用
  2. > > 引用1
  • 效果

引用

引用1

区块中使用列表

  • 语法
  1. > 区块中使用列表
  2. > 1. 第一项
  3. > 2. 第二项
  4. > - 第一项
  5. > - 第二项
  • 效果

区块中使用列表

  1. 第一项
  2. 第二项
  • 第一项
  • 第二项

列表中使用区块

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

  • 语义
  1. * 第一
  2. > 引用
  3. * 第二
  • 效果

  • 第一

    引用

  • 第二

Markdown 代码

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

代码块

  • 语义

一页纸markdown语法 - 图3

  • 效果
  1. function demo (){
  2. alert("txt");
  3. }

代码

  • 语义
  1. `var x = 0;`
  • 效果
    var x = 0;

Markdown 链接

链接使用方法如下:

  • 语义
  1. [我的主页](链接地址)

Markdown 图片

链接使用方法如下:

  • 语义
  1. ![](图片地址)
  2. ![alt 属性文本](图片地址)
  • 效果

一页纸markdown语法 - 图4

Markdown 表格

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

  • 语义
  1. | 表头 | 表头 |
  2. | ---- | ---- |
  3. | 单元格 | 单元格 |
  4. | 单元格 | 单元格 |
  • 效果
表头 表头
单元格 单元格
单元格 单元格

对齐方式

我们可以设置表格的对齐方式:
-: 设置内容和标题栏居右对齐。
:- 设置内容和标题栏居左对齐。
:-: 设置内容和标题栏居中对齐。

  • 语义
  1. | 左对齐 | 右对齐 | 居中对齐 |
  2. | :-| -: | :-: |
  3. | 单元格 | 单元格 | 单元格 |
  4. | 单元格 | 单元格 | 单元格 |
  • 效果
左对齐 右对齐 居中对齐
单元格 单元格 单元格
单元格 单元格 单元格

Markdown 高级技巧

平时使用较少,这里不简述。想使用等你markdown一段时间后,要用到自然也就会了。

  • 支持的 HTML 元素
  • 转义
  • 公式

Markdown+Flowchart流程图语法

Markdown中的flowchart流程图可以很方便地来自动生成流程图,让大家集中注意力与各元素间的逻辑,而减少排班带来的麻烦,废话不多说,我们开始吧!


语法介绍

首先要清楚,Flowchart流程图分为元素定义、连线两个组成部分:

语法结构如下:X=>Y: Z 其中,X是变量名, Y是指操作模块名,冒号后面的Z是具体显示的文字内容。需要注意的是,冒号后要加空格才能识别,而XY=>之间不允许有空格。

其中,变量名X和文字内容Z可以比较随意设置,但是Y是有固定的内容,主要有以下几种:

操作模块名 表示含义说明
start 开始
end 结束
operation 普通操作块
subroutine 子任务块
condition 判断块
inputoutput 输入输出块

1. 定义所有元素

利用关键字,为各元素取一个你喜欢的别名,常用的关键字如下:

  • start 开始节点
    定义语句: s=>start: 系统初始化
    意为定义一个名字叫“s”的“start”元素,该元素显示的内容为“系统初始化”
    一页纸markdown语法 - 图5
  • end 结束节点
    定义语句: e=>end: 测温结束
    意为定义一个名字叫“e”的“end”元素,该元素显示的内容为“测温结束”
    一页纸markdown语法 - 图6
  • operation 操作节点
    定义语句: o1=>operation: 开始测温
    意为定义一个名字叫“o1”的“operation”元素,该元素显示的内容为“开始测温”
    一页纸markdown语法 - 图7
  • condition 条件节点
    定义语句: c1=>condition: KEY按下?
    意为定义一个名字叫“c1”的“condition”元素,该元素显示的内容为“KEY按下?”
    一页纸markdown语法 - 图8
  • inputoutput 输入或输出节点
    定义语句:io=>inputoutput: 输入
    意为定义一个名字叫“io”的“inputoutput”元素,该元素显示的内容为“输入”
    一页纸markdown语法 - 图9
  • subroutine 子程序节点

2.连线:

->将两个元素连接

如果要设置条件框连接线方向,在括号中添加即可。条件框只有两个方向可供选择:

  1. # yes向下,no向右(默认)
  2. # yes向右,no向下。
  3. cond(yes,right)
  4. cond(no,bottom)

3.附加语法

  • 超链接:
    在定义元素时,用:>给某个元素添加超链接。下句让start元素链接至百度首页
  1. s=>start: 系统初始化:https://www.hnai.net

实例演示

效果图

Created with Raphaël 2.1.2系统初始化KEY按下?开始测温LCD屏幕显示体温体温正常?测温结束蜂鸣器响起yesyesno

系统初始化 输入 KEY按下?
开始测温 LCD屏幕显示体温 体温正常?
测温结束 蜂鸣器响起 yes no yes no

源代码

  1. s=>start: 系统初始化:>https://www.hnai.net
  2. io=>inputoutput: User Input
  3. c1=>condition: KEY按下?
  4. c2=>condition: 体温正常?
  5. o1=>operation: 开始测温
  6. o2=>operation: LCD屏幕显示体温
  7. o3=>operation: 蜂鸣器响起
  8. e=>end: 测温结束
  9. s->c1(yes)->o1->o2->c2(yes)->e
  10. c1(no)->c1
  11. c2(no)->o3->e

其中最需要注意的是condition元素的用法,利用c1(yes)和c1(no)进行分支判断。