# VSCode+Markdown+UML - [VSCode+Markdown+UML](#vscodemarkdownuml) - [1. Mermaid 流程图](#1-mermaid-流程图) - [1.1. 横向流程图](#11-横向流程图) - [1.2. 纵向流程图](#12-纵向流程图) - [1.3. 超大流程图样例](#13-超大流程图样例) - [2. Mermaid 甘特图](#2-mermaid-甘特图) - [3. Mermaid 类图](#3-mermaid-类图) - [3.1. 语法](#31-语法) - [3.1.1. 泛化(Generalization)](#311-泛化generalization) - [3.1.2. 实现(Realization)](#312-实现realization) - [3.1.3. 组合(Composition)](#313-组合composition) - [3.1.4. 聚合(Aggregation)](#314-聚合aggregation) - [3.1.5. 关联(Association)](#315-关联association) - [3.1.6. 依赖(Dependency)](#316-依赖dependency) - [4. Mermaid 时序图](#4-mermaid-时序图) - [5. Mermaid 状态图](#5-mermaid-状态图) - [6. Entity Relationship Diagrams](#6-entity-relationship-diagrams) - [7. User Journey Diagram](#7-user-journey-diagram) - [8. Pie chart diagrams](#8-pie-chart-diagrams) - [9. Requirement Diagram](#9-requirement-diagram) - [10. 外部参考资料](#10-外部参考资料) 首先 VSCode 安装 Markdown Preview Enhanced (Yiyi Wang) 插件。 然后对 Markdown 文件可使用 Ctrl+k,v 进行预览。 ## 1. Mermaid 流程图 ```mermaid flowchart Start[开始] End[结束] Operation([处理块]) Subroutine[子程序] Condition1{是或者不是} Condition2{第二个判断} Output[输出] Start --> Operation --> Condition1 --> |Yes|End Condition1 --> |No|Condition2 --> |Yes|Subroutine --> Operation Condition2 --> |No|Output --> End ``` ### 1.1. 横向流程图 ```mermaid flowchart LR A[方形] --> B(圆角) B --> C{条件a} C --> |a=1| D[结果1] C --> |a=2| D[结果2] F[横向流程图] ``` ### 1.2. 纵向流程图 ```mermaid flowchart TD A[方形] --> B(圆角) B --> C{条件a} C --> D[结果1] C --> E[结果2] subgraph F[F] direction TB G[纵向流程图] end ``` ### 1.3. 超大流程图样例 ```mermaid graph TB sq[Square shape] --> ci((Circle shape)) subgraph A od>Odd shape]-- Two line
edge comment --> ro di{Diamond with
line break} -.-> ro(Rounded
square
shape) di==>ro2(Rounded square shape) end %% Notice that no text in shape are added here instead that is appended further down e --> od3>Really long text with linebreak
in an Odd shape] %% Comments after double percent signs e((Inner / circle
and some odd
special characters)) --> f(,.?!+-*ز) cyr[Cyrillic]-->cyr2((Circle shape Начало)); classDef green fill:#9f6,stroke:#333,stroke-width:2px; classDef orange fill:#f96,stroke:#333,stroke-width:4px; class sq,e green class di orange ``` ## 2. Mermaid 甘特图 ```mermaid gantt title 甘特图 dateFormat YYYY-MM-DD section 行1 任务1 :a1, 2014-01-01, 30d 任务2 :after a1 , 20d section 行2 任务3 :2014-01-12 , 12d 任务4 : 24d ``` ## 3. Mermaid 类图 ```mermaid 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 ``` ### 3.1. 语法 #### 3.1.1. 泛化(Generalization) 继承、子类与父类 ```mermaid classDiagram A<|--B A:+int doing A:+Can() B:+flying() ``` #### 3.1.2. 实现(Realization) ```mermaid classDiagram class IFlyable{ <> + flying() } IFlyable<|..Bat Bat:+flying() ``` #### 3.1.3. 组合(Composition) ```mermaid classDiagram Computer *-- CPU Computer *-- Mainboard Computer *-- HardDisk Computer *-- MemeryCard ``` #### 3.1.4. 聚合(Aggregation) ```mermaid classDiagram Company o-- Empolyee0 Company o-- Empolyee1 ``` #### 3.1.5. 关联(Association) ```mermaid classDiagram Reader "1..*" -- "1..*" Book Book "1..*"--> "1"Author ``` #### 3.1.6. 依赖(Dependency) ```mermaid classDiagram Animal..>Food ``` ## 4. Mermaid 时序图 ```mermaid 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
prevail... John-->Alice:Great! John->Bob: How about you? Bob-->John: Jolly good! ``` ## 5. Mermaid 状态图 ```mermaid stateDiagram-v2 [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*] ``` ## 6. Entity Relationship Diagrams ```mermaid erDiagram CUSTOMER ||--o{ ORDER : places ORDER ||--|{ LINE-ITEM : contains CUSTOMER }|..|{ DELIVERY-ADDRESS : uses ``` ## 7. User Journey Diagram ```mermaid 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 ``` ## 8. Pie chart diagrams ```mermaid pie title Pets adopted by volunteers "Dogs" : 386 "Cats" : 85 "Rats" : 15 ``` ## 9. Requirement Diagram ```mermaid requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req ``` ## 10. 外部参考资料 1. [About Mermaid](https://mermaid-js.github.io/mermaid/#/)