markdown基本使用和流程图、甘特图、UML图的用法

简介


MarkDown 是一种轻量级标记语言, 在2004年由约翰·格鲁伯(英语:John Gruber)创建,生成的文件后缀是.md.markdown

它的应用很广泛,可以用于支持:

  • 支持在GitHub、Gitee、GitLab等平台上用于编写Wiki、ReadMe等文档说明
  • 支持在GitBook上撰写电子书
  • 支持导出PDF、WORD、Html等不同格式文档

MarkDown 很强大,语法支持也很多有:

  • 标题、文本格式、列表、图片、链接、目录
  • 代码块、注释、类图
  • 数学公式
  • 甘特图、UML图、Mermaid流程图、Flow流程图、饼状图

注:不同平台对MarkDown的支持不同,流程图可能会无法正常显示

很多工具或平台支持编写:

  • 有道云笔记,印象笔记
  • 博客园,CSDN,简书等
  • Visual Studio Code 安装对应的markdown插件即可
  • Typora,使用Mermaid渲染功能的MarkDown编译器,推荐使用,下载
  • 墨滴 收费软件,支持多个平台发送markdown文章,我主要用于在微信公众号使用。

其他教程可参考:

Mermaid GitHub

Mermaid Docs

MarkDown 官方教程

线上工具:

官方工具

菜鸟编程

本文使用的是Typora 1.2.4版本编写,可能有些语法不支持,但尽量保证将实现的效果给大家呈现出来。
如果您喜欢在更多的平台分享,推荐看下我的另一篇博客:
MarkDown编写公众号文章


基本语法


标题

标题可使用 # 来设置大小,支持6级标题,数目越多,标题越小

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

不要忽略空格,效果如下:

一级标题

二级标题

三级标题

四级标题
五级标题
六级标题

文本样式

文本样式支持斜体、加粗、标记、删除、下划线,文字变色等

*斜体文本*
**加粗文本**
==标记文本==
~~删除文本~~
<u>下划线文本</u>

效果如下:

斜体文本
加粗文本
标记文本
删除文本

下划线文本


分割线

分割线使用使用 ***** 或 - 在3个以上即可

---- 					
***

在某些工具中,2级以下的标题会默认显示下划线,效果如下:




目录列表

目录列表有两种格式的显示:

  1. 配合Tab键使用,样式有:
- 项目
  * 项目
    + 项目

1. 项目1
2. 项目2
3. 项目3

- [ ] 计划任务
- [x] 完成任务

效果如下:

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

  1. 使用 > 表示
> 第1章:绪论
>
> > 1.1 MarkDown基本用法1
> >
> > 1.2 MarkDown的说明
>
> 第2章:开始
>
> > 2.1 内容
> >
> > > 2.1.1 内容拓展
>
> 第3章: 结束

效果如下:

第1章:绪论

1.1 MarkDown基本用法1

1.2 MarkDown的说明

第2章:开始

2.1 内容

2.1.1 内容拓展

第3章: 结束


图片

如果在Typora中使用,可以直接将图片拖入到指定的位置,它会自动生成。

如果本地的图片放在网络中使用,必须先上传,它的主要格式:![name][本地路径或网络路径]

// 图片
![Alt](https://i-blog.csdnimg.cn/blog_migrate/8f1b213356ed81d5a706d52c6ab7cb6d.png)
// 带尺寸的图片
![Alt](https://i-blog.csdnimg.cn/blog_migrate/8f1b213356ed81d5a706d52c6ab7cb6d.png =60x60)
// 宽度确定高度等比例的图片
![Alt](https://i-blog.csdnimg.cn/blog_migrate/8f1b213356ed81d5a706d52c6ab7cb6d.png =60x)
// 高度确定宽度等比例的图片
![Alt](https://i-blog.csdnimg.cn/blog_migrate/8f1b213356ed81d5a706d52c6ab7cb6d.png =x60)
// 居中的图片
![Alt](https://i-blog.csdnimg.cn/blog_migrate/8f1b213356ed81d5a706d52c6ab7cb6d.png#pic_center)
// 居中并且带尺寸的图片
![Alt](https://i-blog.csdnimg.cn/blog_migrate/8f1b213356ed81d5a706d52c6ab7cb6d.png#pic_center =60x60)
// 居右的图片
![Alt](https://i-blog.csdnimg.cn/blog_migrate/8f1b213356ed81d5a706d52c6ab7cb6d.png#pic_right)

感谢CSDN,第一张效果如下:

Alt


链接

链接的使用跟图片类似,区别就是没有前面的 !

[我的CSDN博客](https://blog.csdn.net/qq_24726043?type=blog)

效果如下:

我的CSDN博客

注:如果您想分享一个链接,恰好使用MarkDown,推荐这种方式


表格

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

如果使用 Typora的话,可以直接快捷生成,然后可设置行列的大小,甚至排列等

项目     | Value
-------- | -----
电脑  | $1600
手机  | $12
导管  | $1

| Column 1 | Column 2      |
|:--------:| -------------:|
| centered 文本居中 | right-aligned 文本居右 |

效果如下:

项目Value
电脑$1600
手机$12
导管$1
Column 1Column 2
centered 文本居中right-aligned 文本居右

代码

代码相关主要有两种:

  • 标记方法或函数相关,使用单反引号(`)

  • 标记代码段相关,使用多反引号(```),代码段支持C/C++、Java、TypeScript、Python、Lua等等

  • 代码块相关,是支持查看不同的,使用主要标记是diff

注: 在CSDN平台中,不支持用于C++语言,因类似可使用C来代替

// 方法相关
`AssetManager`
`getName()`
// 代码相关
```lua
local setNum = function(num)
	num = num + 1
end
```
// diff相关
```diff
function addTwoNumbers (num1, num2) {
-  return 1 + 2
+  return num1 + num2
}
```

效果如下:
AssetManager
getName()

local setNum = function(num)
	num = num + 1
end
function addTwoNumbers (num1, num2) {
-  return 1 + 2
+  return num1 + num2
}

HTML

MarkDown是支持HTML语法的,在上面的下划线文字效果中有用到。这里罗列下常用的语法:

# 使用h1~h6设置标题
<h3>三级标题</h3>
# 使用<br/>强制换行
<br/>
# 使用<strong></strong>粗体文本
I just love <strong>bold text</strong>
# 使用<code></code>表示代码块
At the command prompt, type <code>nano</code>.
# 使用<font>设置字体颜色</font>
<font color = "#FF00AA">变色的文本</font>

效果如下:

三级标题


I just love bold text

At the command prompt, type nano.

变色的文本


总结

基础语法的使用绝大多数都是可嵌套的,但嵌套过多可能会导致得不到想要的效果。


数学公式

MarkDown主要通过 KaTeX 或者 MathJax 来渲染数学表达式。

KaTeX 拥有比 MathJax 更快的性能,但是它却少了很多 MathJax 拥有的特性。

公式使用的分割符主要是:

  • $...$ 或者 \(...\) 中的数学表达式将会在行内显示。
  • $$...$$ 或者 \[...\] 或者 ````math` 中的数学表达式将会在块内显示。
# 示例1
$$
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
$$
# 示例2
$$
\begin{Bmatrix}
   a & b \\
   c & d
\end{Bmatrix}
$$
# 示例3
$$
\begin{CD}
   A @>a>> B \\
@VbVV @AAcA \\
   C @= D
\end{CD}
$$

效果如下:
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

{ a b c d } \begin{Bmatrix} a & b \\ c & d \end{Bmatrix} {acbd}

A → a B b ↓ ↑ c C = D \begin{CD} A @>a>> B \\ @VbVV @AAcA \\ C @= D \end{CD} Ab Ca B cD


Mermaid流程图


Mermaid流程图支持多种显示,主要有:

  • 饼状图,使用pie关键字
  • 流程图,使用graph关键字
  • 序列图,使用sequenceDiagram关键字
  • 甘特图,使用gantt关键字
  • 类图,使用classDiagram关键字
  • 状态图,使用stateDiagram关键字
  • 用户旅程图,使用journey关键字

更多内容可参考Mermaid Docs

注: 注释使用 %%

基本用法

  • 流程图方向 开头声明,默认从上到下
%% 有L(左) R(右) T(上) B(下) 四种, 常用用法:
%% 从上到下 graph TB
%% 从下到上 graph BT
%% 从左到右 graph LR
%% 从右到左 graph RL
  • 图形形状一,默认方形
%% id表示节点名,用于连接;括号没有存在表示方形,存在下的名字表示图形内文字显示
```mermaid
graph
默认方形
id1[方形]
id2(圆角矩形)
id3([椭圆形])
id4[[子程序形]]
id5[(圆柱形)]
id6((圆形))
```
默认方形
方形
圆角矩形
椭圆形
子程序形
圆柱形
圆形
  • 图形形状二
```mermaid
graph
id7{菱形}
id8{{六角形}}
id9[/平行四边形/]
id10[\反向平行四边形\]
id11[/梯形\]
id12[\反向梯形/]
```
菱形
六角形
平行四边形
反向平行四边形
梯形
反向梯形
  • 连线样式, 主要通过节点名连接不同的图形
%% 无文本短虚线箭头 -.->
%% 无文本短实线箭头 -->
%% 无文本实线箭头,"-"越多,箭头越长 --->
%% 无文本粗实线箭头,"="越多,箭头越长 ==>, ===> 

%% 有文本虚线箭头 -.文本.->
%% 有文本实线箭头 --文本-->
%% 有文本粗实线箭头 ==文本==>

%% 无文本虚线 -.-
%% 有文本虚线 -.文本.-
%% 无文本实线,至少3个 ---
%% 有文本实线 ---文本---
%% 粗线,至少3个 ===

```mermaid
graph LR
id1 -.-> id2
id2 --> id3
id3 ---> id4
id4 ==> id5
id6 -.文本.-> id7 --文本--> id8 ==文本==> id9
a -.- b --- c 
A -.文本.- B ---文本--- C
AA === BB ==文本=== CC
```
文本
文本
文本
文本
文本
id1
id2
id3
id4
id5
id6
id7
id8
id9
a
b
c
A
B
文本
C
AA
BB
CC
  • 连接 支持一对一、递推和一对多,后者使用符号**&**
```mermaid
graph
%% 一对一
a --> b
%% 递推
A --> B --> C
%% 一对多
a1 --> b1 & c1 --> d
a2 & b2 --> c2 & d2
```
a
b
A
B
C
a1
b1
c1
d
a2
b2
c2
d2

mermaid基础示例

```mermaid
graph LR
%% 设置样式
style A fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray: 10,5

A[正方形] --> B(圆角)
B -.-> C{条件A}
C -.a==1.-> D[结果1]
C --a==2--> E[结果2]
```

效果如下:

a==1
a==2
正方形
圆角
条件A
结果1
结果2

mermaid时序图

时序图的关键词是sequenceDiagram

```mermaid
sequenceDiagram
	participant 张三
	participant 李四
	张三->>王五: 王五你好吗?
  loop 健康检查
  王五->>王五: 与疾病战斗
  end
  Note right of 王五: 合理 食物 <br/>看医生...
  李四-->>张三: 很好!
  王五->>李四: 你怎么样?
  李四-->>王五: 很好!
```

效果如下:

张三 李四 王五 王五你好吗? 与疾病战斗 loop [健康检查] 合理 食物 看医生... 很好! 你怎么样? 很好! 张三 李四 王五

flowchart流程图

关键词是flowchart,更多内容参考:flowchart

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

%% 横向
```mermaid
flowchat
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
```

竖向效果如下:

Created with Raphaël 2.3.0 开始框 处理框 判断框(是或否?) 输入输出框 结束框 子流程 yes no

竖向

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

横向

Created with Raphaël 2.3.0 开始框 处理框 判断框(是或否?) 输入输出框 结束框 子流程 yes no

甘特图

关键词是gantt,更多内容参考: GitHub mermaid

```mermaid
gantt
    section Section
    Completed :done,    des1, 2014-01-06,2014-01-08
    Active        :active,  des2, 2014-01-07, 3d
    Parallel 1   :         des3, after des1, 1d
    Parallel 2   :         des4, after des1, 1d
    Parallel 3   :         des5, after des3, 1d
    Parallel 4   :         des6, after des4, 1d
```

效果如下:

2014-01-06 2014-01-06 2014-01-07 2014-01-07 2014-01-08 2014-01-08 2014-01-09 2014-01-09 2014-01-10 Completed Active Parallel 1 Parallel 2 Parallel 3 Parallel 4 Section

类图

关键词是: classDiagram,更多内容参考: GitHub mermaid

```mermaid
classDiagram
Class01 <|-- AveryLongClass : Cool
<<Interface>> Class01
Class09 --> C2 : Where am I?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
class Class10 {
  <<service>>
  int id
  size()
}
```

效果如下:

Cool
Where am I?
«Interface»
Class01
int chimp
int gorilla
size()
AveryLongClass
Class09
C2
C3
Class07
Object[] elementData
equals()
«service»
Class10
int id
size()

### 饼图

主要关键词是: pie

```mermaid
pie title 失业了怎么办
    "努力提升" : 386
    "需求新方向" : 85
    "新探索": 100
    "躺平" : 15
```

效果如下:

66% 15% 17% 3% 失业了怎么办 努力 新方向 探索 躺平

至此结束,祝大家学习生活愉快!

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹤九日

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值