🧜Dokumentace7 min čteníAktualizováno: 30. 10. 2026

Mermaid diagramy, PlantUML a C4: diagramy jako kód

Mermaid diagram je diagram zapsaný textem, který GitHub i GitLab vykreslí přímo v Markdownu. Porovnáme ho s PlantUML a ukážeme, k čemu se hodí.

👨‍💻
Roman
AboutTheApp

Shrnutí a kontext

Mermaid diagram je diagram zapsaný jako text, ze kterého GitHub, GitLab i řada wiki vykreslí obrázek. V diagramu tak lze sledovat změny podobně jako ve zdrojovém kódu, mění se ve stejném pull requestu a jeho historii vidíte v Gitu. V článku najdete srovnání Mermaidu s PlantUML, model C4 pro popis architektury a přehled diagramů, které se v běžném projektu vyplatí udržovat.

1. Co jsou diagramy jako kód

Diagramy jako kód (diagrams as code) jsou diagramy popsané textovým zápisem, ze kterého správný nástroj vygeneruje obrázek. Místo přetahování obdélníků pomocí myši napíšete příkaz „api --> db“ a nástroj se sám postará o rozvržení a propojení prvků.

Podstatný rozdíl je v tom, kde diagram udržujete. Schéma v souboru na sdíleném disku nebo exportovaný obrázek někde v dokumentaci časem přestane odpovídat kódu a málo kdy je jasné, kdo a kdy ho má vlastně aktualizovat. Naproti tomu textový diagram v repozitáři projde revizí spolu se změnou, kterou popisuje, a v diffu je vidět, co se v něm změnilo.

2. Mermaid diagram: zápis, který vykreslí GitHub i GitLab

Mermaid je javascriptová knihovna, která z textu vykreslí vývojový diagram (flowchart), sekvenční diagram, ER diagram databáze, stavový diagram, Ganttův diagram a další. Podle dokumentace GitHubu stačí diagram vložit do bloku kódu označeného jako mermaid v Markdown souboru, issue nebo pull requestu. Stejně ho vykreslí i GitLab.

Syntaxi si můžete vyzkoušet v Mermaid Live Editoru, který ihned při psaní ukazuje náhled. Mermaid zobrazí také Notion, Obsidian nebo wiki v Azure DevOps. Následující vývojový diagram popisuje architekturu malé webové aplikace.

docs/architektura.md
```mermaid
flowchart LR
  zakaznik([Zákazník]) --> web[Webová aplikace]
  web --> api[API]
  api --> db[(PostgreSQL)]
  api --> platby[Platební brána]
  api --> email[E-mailová služba]
```

3. PlantUML: všechny UML diagramy

PlantUML je nástroj napsaný v Javě, který pokrývá všechny běžné UML diagramy (sekvenční, tříd, případů užití, komponent a nasazení) a k tomu například i drátěné modely obrazovek (wireframes). Zápis začíná řádkem @startuml a končí @enduml.

GitHub PlantUML přímo nevykreslí, ale například GitLab.com ano a na vlastní instanci GitLabu ho musí zapnout správce. Lokálně ho umí zobrazit rozšíření ve VS Code nebo IntelliJ, bez instalace pak online server na plantuml.com. Ukázka níže je sekvenční diagram vytvoření objednávky.

docs/objednavka.puml
@startuml
actor Zákazník
participant "Webová aplikace" as Web
participant API
database PostgreSQL as DB
participant "Platební brána" as Platby
Zákazník -> Web: Odeslat objednávku
Web -> API: POST /orders
API -> DB: uložit objednávku
API -> Platby: vytvořit platbu
Platby --> API: adresa platby
API --> Web: 201 Created
@enduml

4. Mermaid nebo PlantUML?

Pro většinu týmů na GitHubu je výchozí volbou Mermaid, protože ho GitHub standardně podporuje bez dalších nastavení. PlantUML se vyplatí, když potřebujete UML diagramy, které Mermaid moc dobře neumí, anebo ho již používáte v GitLabu.

MermaidPlantUML
Na čem běžíJavaScript, vykreslí se v prohlížečiJava, vykreslí se na serveru nebo lokálně
GitHubVykreslí v MarkdownuNevykreslí, vkládá se vygenerovaný obrázek
GitLabVykreslí v MarkdownuVykreslí na GitLab.com, na vlastní instanci po zapnutí
Typy diagramůVývojový, sekvenční, ER, stavový, tříd, Gantt, C4 (experimentálně)Všechny UML diagramy, C4 přes knihovnu C4-PlantUML, drátěné modely
Online editormermaid.liveplantuml.com

5. Model C4: architektura ve čtyřech úrovních

Model C4 popisuje architekturu softwaru ve čtyřech úrovních detailu: kontext systému, kontejnery, komponenty a kód. Kontejner zde neznamená Docker kontejner, ale samostatně nasaditelnou část systému, třeba webovou aplikaci, API, databázi nebo mobilní aplikaci.

Model C4 od Simona Browna není nástroj, ale metodika pro popis architektury pomocí diagramů. Nakreslíte je v Mermaidu, v PlantUML nebo třeba ve specializovaném nástroji Structurizr. Většině aplikací stačí první dvě úrovně, diagram komponent se vyplatí u rozsáhlejších částí systému.

6. Které diagramy v projektu opravdu potřebujete

Udržovat se vyplatí diagramy, které pomáhají pochopit proces, struktury, vztahy nebo děje v systému. V době generativní AI to sice vypadá, že přednost má velké množství textů, slovních popisů a vysvětlení, avšak pro člověka jsou diagramy a schémata mnohem rychlejší pro pochopení. V běžné webové nebo mobilní aplikaci jde obvykle o pět typů, které se pak odkazují z dokumentace projektu.

Diagram tříd nebo případů užití obvykle nemusíte ručně udržovat. Diagram tříd ukáže vývojové prostředí z kódu a případy užití se v agilních týmech zapisují jako uživatelské příběhy. Pokud je vyžaduje zadávací dokumentace, vytvořte je pro konkrétní vydání a dál neaktualizujte.

DiagramCo ukazujeKdy se vyplatí
Kontextový diagram (C4, úroveň 1)Aplikaci, její uživatele a externí služby: platby, e-mail, přihlášeníVždy, je to první obrázek pro nového vývojáře i zákazníka
Diagram kontejnerů nebo nasazeníFrontend, API, databázi, fronty a kde běžíKdyž má aplikace víc než jednu nasaditelnou část
ER diagramTabulky databáze a vztahy mezi nimiU aplikací s vlastní databází, dá se generovat ze schématu
Sekvenční diagramPořadí volání v jednom toku, třeba platby nebo přihlášeníU složitých toků a integrací s cizími systémy
Stavový diagramStavy objednávky nebo žádosti a přechody mezi nimiKdyž se o stavech diskutuje s analytikem nebo zákazníkem

7. Diagramy bez Mermaidu: soubory draw.io a diagramy pomocí AI

Pokud vám textový zápis nevyhovuje, nechte AI vytvořit diagram v draw.io. Soubor .drawio je ve skutečnosti XML, takže ho asistent jako Claude Code, Codex nebo GitHub Copilot upravuje stejně jako zdrojový kód: změní jen prvek, o který ho požádáte, a zbytek diagramu nechá beze změny. Draw.io k tomu nabízí oficiální MCP server a pluginy pro AI asistenty a v editoru má vlastní nástroj, který umí vygenerovat diagram z popisu.

Do repozitáře můžete použít formát .drawio.svg, případně .drawio.png. Oba jsou běžné obrázky, které GitHub zobrazí třeba v README, ale protože obsahují i XML data, umí je rozšíření Draw.io Integration pro VS Code otevřít k úpravám bez exportu.

AI modely jako ChatGPT nebo Gemini umí vytvořit diagram architektury i jako obrázek a můžete v něm upravovat jen vybrané části, aniž by došlo k přegenerování celého diagramu. Takový diagram se hodí pro prezentace nebo pro zákazníka, protože do něj můžete jednoduše vkládat atraktivní infografiku, fotografie a další. Nevýhoda obrázků je, že se jedná o binární formát, takže při uložení v Gitu nelze sledovat dílčí změny, vždy se změní celý soubor.

8. Kde ukládat diagramy

Zdrojový text diagramů patří do repozitáře, typicky do složky docs, ale můžete je umístit i do dokumentačních systémů jako je Confluence, MediaWiki, Notion a další. Diagramy nepotřebují pouze vývojáři, ale i další role v životním cyklu aplikace, jako třeba analytik, projektový manažer, tester, zákazník nebo nový dodavatel při předání projektu.

V AboutTheApp připojíte k aplikaci odkaz na složku s diagramy nebo odkaz na dokumentaci do kategorie Zdrojový kód a architektura a analytické diagramy procesů do kategorie Analýzy a plánování. Odkazy, které nemají vidět všichni, označíte jako privátní. Pokud má zákazník vlastní nasazení s jinou infrastrukturou, připojíte jeho diagram nasazení jen k jeho instalaci a zobrazí se mu na jeho About page. AboutTheApp diagramy nevykresluje, ale drží na ně odkazy.

Odkaz z online editoru obsahuje celý diagram

Mermaid Live Editor i veřejný server PlantUML ukládají zdrojový text diagramu přímo do adresy odkazu. Kdo odkaz má, vidí celou architekturu. U interních diagramů odkazujte na soubor v repozitáři s řízeným přístupem, případně můžete provozovat vlastní server PlantUML.

Časté otázky

Co je Mermaid diagram?

Diagram zapsaný textovou syntaxí knihovny Mermaid, ze které se vykreslí obrázek. GitHub, GitLab, Notion nebo Obsidian ho zobrazí přímo z bloku kódu označeného jako mermaid.

Podporuje GitHub Mermaid diagramy?

Ano. GitHub vykreslí Mermaid diagram v Markdown souborech, issues a pull requestech, pokud je v bloku kódu označeném jako mermaid. PlantUML GitHub přímo nevykreslí.

Je lepší Mermaid nebo PlantUML?

Pro týmy na GitHubu je praktičtější Mermaid, protože ho GitHub vykreslí bez další instalace. PlantUML zvolte, když potřebujete UML diagramy, které Mermaid neumí, třeba diagram případů užití nebo komponent.

Umí AI vytvořit diagram architektury?

Ano. Asistent jako Claude Code nebo Codex napíše diagram v Mermaidu nebo jako soubor draw.io a umí v něm upravovat jen vybrané části.

Co je model C4?

Způsob, jak popsat architekturu softwaru ve čtyřech úrovních: kontext systému, kontejnery, komponenty a kód. Autorem je Simon Brown a diagramy nakreslíte v Mermaidu, PlantUML nebo Draw.io.

Kde mají být uložené diagramy architektury?

Zdrojový text v repozitáři vedle zdrojového kódu, aby se měnil ve stejném pull requestu spolu s aplikací. Odkaz na diagramy patří k aplikaci, například do AboutTheApp, kde je najdou i lidé bez přístupu do repozitáře. AboutTheApp diagramy nevykresluje, jen na ně odkazuje.

Ve zkratce

Diagram zapsaný jako kód zůstane aktuální, protože se mění spolu s kódem. Stačí několik diagramů, které tým opravdu otevírá, a odkaz na ně u aplikace, kde je najde i ten, kdo s repozitářem běžně nepracuje.

AboutTheApp

Chcete mít diagramy a dokumentaci u aplikace?

Založte si zdarma aplikaci v AboutTheApp a připojte k ní odkazy na repozitář, diagramy a dokumentaci.