Mermaid Diagram là gì?
Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development.
Mermaid là một thư viện JavaScript để sinh biểu đồ, đồ thị trong tài liệu Markdown bằng mã thay vì file ảnh nhị phân. Ưu điểm của Mermaid diagram là bạn có thể chỉnh lại code, nội dung biểu đồ cũng thay đổi theo tức thì. Hiện nay chức năng Editor markdown của Techmaster đã hỗ trợ nhúng các biểu đồ, độ thị cú pháp Mermaid vào.
Để nhúng các bạn cần gõ như sau
~~~mermaid
code mermaid tùy loại diagram
~~~
Dưới đây là các biểu đồ Mermaid các thể loại để bạn thấy được sức mạnh của thư viện này.
Bar chart
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]
Pie chart
pie title What Voldemort doesn't have? "FRIENDS" : 2 "FAMILY" : 3 "NOSE" : 45
Sequence diagram
Ví dụ 1
sequenceDiagram loop Daily query Alice->>Bob: Hello Bob, how are you? alt is sick Bob->>Alice: Not so good :( else is well Bob->>Alice: Feeling fresh like a daisy end opt Extra response Bob->>Alice: Thanks for asking end end
Ví dụ 2
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!
Ví dụ 3
sequenceDiagram actor Alice actor Bob actor Carl Alice->>Bob: Hello Bob, how are you ? Bob->>Alice: Fine, thank you. And you? Alice->>Carl: Hi Carl! create actor D as Donald Carl->>D: Hi! destroy Carl Alice-xCarl: We are too many destroy Bob Bob->>Alice: I agree
State Diagram
stateDiagram [*] --> Still Still --> [*] Still --> Moving Moving --> Still Moving --> Crash Crash --> [*]
Flow chart
Ví dụ 1
graph LR A[Square Rect] -- Link text --> B((Circle)) A --> C(Round Rect) B --> D{Rhombus} C --> D
Ví dụ 2
graph TD A[Christmas] -->|Get money| B(Go shopping) B --> C{Let me think} C -->|One| D[Laptop] C -->|Two| E[iPhone] C -->|Three| F[Car]
Ví dụ 3
graph TD Bat(fa:fa-car-battery Batteries) -->|150a 50mm| ShutOff Bat -->|150a 50mm| Shunt ShutOff[Shut Off] -->|150a 50mm| BusPos[Bus Bar +] Shunt -->|150a 50mm| BusNeg[Bus Bar -] BusPos -->|40a| Fuse[Fuse Box] BusPos -->|?a| Old{Old Wiring} BusNeg -->|40a| Fuse Fuse -->|10a| USB(USB-C) Fuse -->|10a| USB Fuse -->|1.5a| Switch -->|1.5a| Wifi Wifi -->|1.5a| Fuse Fuse -->|10a| Cig1[Cigarette Lighter] Fuse -->|10a| Cig1 Fuse -->|10a| Cig2[Cigarette Lighter Near Bed] Fuse -->|10a| Cig2 BusNeg -->|?a| Old Solar --> SolarCont[Solar Controller] Solar --> SolarCont SolarCont --> BusNeg SolarCont --> BusPos linkStyle 0 stroke-width:2px,fill:none,stroke:red; linkStyle 1 stroke-width:2px,fill:none,stroke:black; linkStyle 2 stroke-width:2px,fill:none,stroke:red; linkStyle 3 stroke-width:2px,fill:none,stroke:black; linkStyle 4 stroke-width:2px,fill:none,stroke:red; linkStyle 5 stroke-width:2px,fill:none,stroke:red; linkStyle 6 stroke-width:2px,fill:none,stroke:black; linkStyle 7 stroke-width:2px,fill:none,stroke:black; linkStyle 8 stroke-width:2px,fill:none,stroke:red; linkStyle 9 stroke-width:2px,fill:none,stroke:red; linkStyle 10 stroke-width:2px,fill:none,stroke:red; linkStyle 11 stroke-width:2px,fill:none,stroke:black; linkStyle 12 stroke-width:2px,fill:none,stroke:red; linkStyle 13 stroke-width:2px,fill:none,stroke:black; linkStyle 14 stroke-width:2px,fill:none,stroke:red; linkStyle 15 stroke-width:2px,fill:none,stroke:black; linkStyle 16 stroke-width:2px,fill:none,stroke:black; linkStyle 17 stroke-width:2px,fill:none,stroke:red; linkStyle 18 stroke-width:2px,fill:none,stroke:black; linkStyle 19 stroke-width:2px,fill:none,stroke:black;
Class diagram
Ví dụ 1
classDiagram classA --|> classB : Inheritance classC --* classD : Composition classE --o classF : Aggregation classG --> classH : Association classI -- classJ : Link(Solid) classK ..> classL : Dependency classM ..|> classN : Realization classO .. classP : Link(Dashed)
Ví dụ 2
--- title: Animal example --- classDiagram note "From Duck till Zebra" Animal <|-- Duck note for Duck "can fly\ncan swim\ncan dive\ncan help in debugging" Animal <|-- Fish Animal <|-- Zebra Animal : +int age Animal : +String gender Animal: +isMammal() Animal: +mate() class Duck{ +String beakColor +swim() +quack() } class Fish{ -int sizeInFeet -canEat() } class Zebra{ +bool is_wild +run() }
Entity Diagram
Ví dụ 1
--- title: Order example --- erDiagram CUSTOMER ||--o{ ORDER : places ORDER ||--|{ LINE-ITEM : contains CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
Ví dụ 2
erDiagram CUSTOMER ||--o{ ORDER : places CUSTOMER { string name string custNumber string sector } ORDER ||--|{ LINE-ITEM : contains ORDER { int orderNumber string deliveryAddress } LINE-ITEM { string productCode int quantity float pricePerUnit }
Ví dụ 3
erDiagram CAR ||--o{ NAMED-DRIVER : allows CAR { string registrationNumber PK string make string model string[] parts } PERSON ||--o{ NAMED-DRIVER : is PERSON { string driversLicense PK "The license #" string(99) firstName "Only 99 characters are allowed" string lastName string phone UK int age } NAMED-DRIVER { string carRegistrationNumber PK, FK string driverLicence PK, FK } MANUFACTURER only one to zero or more CAR : makes
Mind map
Ví dụ 1
mindmap root((mindmap)) Origins Long history ::icon(fa fa-book) Popularisation British popular psychology author Tony Buzan Research On effectiveness
and features On Automatic creation Uses Creative techniques Strategic planning Argument mapping Tools Pen and paper Mermaid
Ví dụ 2
mindmap Shapes Default [Square] (Rounded) ((Circle)) ))Bang(( )Cloud( {{Hexagon}}
Ví dụ 3
mindmap Talk ::icon(fa fa-microphone) Notebooks ::icon(fa fa-book) Jupyter Notebooks ::icon(fa fa-rocket) IDEs ::icon(fa fa-code) Anaconda ::icon(fa fa-file-code) Polyglot Notebooks ::icon(fa fa-pencil) Installation ::icon(fa fa-wrench) Languages ::icon(fa fa-comment) Variable Sharing ::icon(fa fa-share) Next Steps ::icon(fa fa-arrow-right)
Git diagram
--- title: Example Git diagram --- gitGraph commit commit branch develop checkout develop commit commit checkout main merge develop commit commit
Timelime
timeline title History of Social Media Platform 2002 : LinkedIn 2004 : Facebook : Google 2005 : Youtube 2006 : Twitter
Gantt Chart
gantt title A Gantt Diagram dateFormat YYYY-MM-DD section Section A task :a1, 2014-01-01, 30d Another task :after a1, 20d section Another Task in Another :2014-01-12, 12d another task :24d
Bình luận