Creating UML / Graphs with Mermaid
Ako vy kreslite UML diagramy alebo grafy? Kreslíte? U nás ani moc nie, ale občas sa to zíde a je fajn mať fungovanie nejakej časti systému popísané napríklad sekvenčným diagramom.
V minulosti som používal draw.io. Super nástroj, ale bol s tým štandardný problém. Ako uchovávať diagramy? Ako ich pridávať do dokumentácie? Ako ich zdieľať? A najväčší problém ako ich dodatočne upravovať 🤔?
Párkrát som využil PlantUML, ktorý to presne riešil. Jednoducho diagram vytvorím pomocou textu priamo v markdown-e a tool za mňa na tom mieste vyrenderuje obázok. Za mňa je to super riešenie.
Objavil som však Mermaid. Rovnaká myšlienka, ale vzhľadom na to kde a ako je všade integrovaná, tak pre mňa výrazne lepšia voľba.
sequenceDiagram
participant Author
participant Notion
participant Blog1 as blog.burgyn.online
participant Blog2 as blog.vyvojari.dev
participant Social as Social media
Author->>Notion: Record ideas for articles
Author->>Notion: Select an idea to write about
Author->>Author: Write the basic structure of the article
Note right of Author: Drink lots of coffee!
Author->>Author: Insert images and diagrams
Author->>Author: Check grammar and style
Author->>Blog1: Publish the article
Author->>Blog2: Publish the article
Author->>Author: Create graphic material
Author->>Social: Share the article from blog.burgyn.online
Note right of Author: Wait for feedback!
Výhody pre mňa:
- jednoduché použitie priamo v markdown-e
- tým pádom je to súčasťou dokumentácie, issues, ...
- natívna podpora git (verziovanie, zdieľanie, ...)
- následná editácia
- možnosť vytvárať rôzne typy diagramov (flowchart, sequence, class, state, ...)
- rôzne integrácie
- Notion
- GitHub
- Jekyll (ja som použil jekyll-mermaid)
- VsCode
- AZURE DevOps (zatiaľ len Wiki)
- ChatGPT 🤣
- ...
- ?? vyvojari.dev ?? Čo ty na to Vlko? neskúsiš podprotiť?
Plugin pre ChatGPT. Diagram vyššie som vytvoril jednoduchým promptom do ChatGPT:
Idem písať článok práve o Mermaid. Vytvor mi nejaký zaujímavý sekvenčný diagram o tom ako sa píše takýto blog post. Myšlienky zapisujem do Notion, post zverejňujem na blog.burgyn.online a blog.vyvojari.dev. Nasledne robím o tom post na social media.