mermaid图表渲染

  • ~5.14K 字
  • 次阅读
  • 条评论
  1. 1. 背景
  2. 2. 共通
  3. 3. 流程图 flowchart
    1. 3.1. 代码
    2. 3.2. 图形
  4. 4. 时序图 Sequence diagram
    1. 4.1. 代码
    2. 4.2. 图形
  5. 5. 甘特图 Gantt diagram
    1. 5.1. 代码
    2. 5.2. 图形
  6. 6. Class diagram
    1. 6.1. 代码
    2. 6.2. 图形
  7. 7. Git graph
    1. 7.1. 代码
    2. 7.2. 图形
  8. 8. User Journey Diagram
    1. 8.1. 代码
    2. 8.2. 图形
  9. 9. Quadrant Chart
    1. 9.1. 代码
    2. 9.2. 图形
  10. 10. XY Chart
    1. 10.1. 代码
    2. 10.2. 图形
  11. 11. Entity Relationship Diagram (experimental)
    1. 11.1. 代码
    2. 11.2. 图形

记录 mermaid 图表的使用方法

背景

发现 mermaid 这一渲染图表的神器,只可惜 Hexo 原生不支持,
调查一圈发现有插件hexo-filter-mermaid-diagrams支持。
不过要使用的话,需要修改主题那块代码,
本着能紧跟最新版本(懒得修改代码)的原则,
发了一条GitHub Issue,请求主题的作者,作者立马就改好了。感谢作者大大( •̀ ω •́ )✧

共通

  1. 安装 hexo-filter-mermaid-diagrams
1
2
3
# 二选一
npm i hexo-filter-mermaid-diagrams --save
yarn add hexo-filter-mermaid-diagrams
  1. 编写内容
    • 如同一般一般代码块,先写三个反引号
    • 后面接上mermaid
    • 最后再加 3 个反引号
  2. 例如

流程图 flowchart

代码

1
2
3
4
5
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;

图形

graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;

时序图 Sequence diagram

代码

1
2
3
4
5
6
7
8
9
10
11
sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts <br/>prevail...
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!

图形

sequenceDiagram
    participant Alice
    participant Bob
    Alice->>John: Hello John, how are you?
    loop Healthcheck
        John->>John: Fight against hypochondria
    end
    Note right of John: Rational thoughts <br/>prevail...
    John-->>Alice: Great!
    John->>Bob: How about you?
    Bob-->>John: Jolly good!

甘特图 Gantt diagram

代码

1
2
3
4
5
6
7
8
9
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram to mermaid

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

图形

gantt
dateFormat  YYYY-MM-DD
title Adding GANTT diagram to mermaid

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

Class diagram

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
classDiagram
Class01 <|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label

图形

classDiagram
Class01 <|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label

Git graph

代码

1
2
3
4
5
6
7
8
9
10
gitGraph
commit
commit
branch develop
commit
commit
commit
checkout main
commit
commit

图形

gitGraph
    commit
    commit
    branch develop
    commit
    commit
    commit
    checkout main
    commit
    commit

User Journey Diagram

代码

1
2
3
4
5
6
7
8
9
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me

图形

journey
  title My working day
  section Go to work
    Make tea: 5: Me
    Go upstairs: 3: Me
    Do work: 1: Me, Cat
  section Go home
    Go downstairs: 5: Me
    Sit down: 5: Me

Quadrant Chart

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
quadrantChart
title Reach and engagement of campaigns
x-axis Low Reach --> High Reach
y-axis Low Engagement --> High Engagement
quadrant-1 We should expand
quadrant-2 Need to promote
quadrant-3 Re-evaluate
quadrant-4 May be improved
Campaign A: [0.3, 0.6]
Campaign B: [0.45, 0.23]
Campaign C: [0.57, 0.69]
Campaign D: [0.78, 0.34]
Campaign E: [0.40, 0.34]
Campaign F: [0.35, 0.78]

图形

quadrantChart
  title Reach and engagement of campaigns
  x-axis Low Reach --> High Reach
  y-axis Low Engagement --> High Engagement
  quadrant-1 We should expand
  quadrant-2 Need to promote
  quadrant-3 Re-evaluate
  quadrant-4 May be improved
  Campaign A: [0.3, 0.6]
  Campaign B: [0.45, 0.23]
  Campaign C: [0.57, 0.69]
  Campaign D: [0.78, 0.34]
  Campaign E: [0.40, 0.34]
  Campaign F: [0.35, 0.78]

XY Chart

代码

1
2
3
4
5
6
xychart-beta
title "Sales Revenue"
x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]

图形

xychart-beta
  title "Sales Revenue"
  x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
  y-axis "Revenue (in $)" 4000 --> 11000
  bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
  line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]

Entity Relationship Diagram (experimental)

代码

1
2
3
4
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses

图形

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE-ITEM : contains
    CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
赞助喵
非常感谢您的喜欢!
赞助喵
分享这一刻
让朋友们也来瞅瞅!