Diagram jako kód — 10 min čtení

Formát PlantUML

PlantUML umožňuje psát diagramy jako prostý text. Zjistěte, co to je, jak GanttTool tuto technologii využívá k vykreslování Ganttových diagramů a jaké další typy diagramů podporuje.

10 min čtení Červen 2026 Od GanttTool

Co je PlantUML?

PlantUML je open-source nástroj, který umožňuje vytvářet diagramy z popisů v prostém textu. Místo přetahování rámečků po plátně napíšete několik řádků jednoduché syntaxe a PlantUML vykreslí profesionální diagram. Tento přístup se často nazývá "diagram jako kód" nebo "text na diagram."

Minimální PlantUML diagram vypadá takto: otevřete značkou @start<typ>, popíšete strukturu několika čitelnými řádky a uzavřete značkou @end<typ>. Nástroj tento text analyzuje a vytvoří SVG, PNG nebo PDF — kdekoli jej vykreslíte.

Proč psát diagramy jako text?

  • Správa verzí — Prostý text se čistě diffuje v Gitu. Můžete sledovat každou změnu diagramu, zkontrolovat ji v pull requestu a vrátit se zpět, pokud se něco rozbije.
  • Rychlost — Napsat [Úkol A] lasts 5 days je rychlejší než kreslit pruh na plátně a měnit jeho velikost.
  • Konzistence — Vykreslovací engine automaticky aplikuje jednotné rozestupy, písma a barvy. Soustředíte se na obsah, ne na rozvržení.
  • Přenositelnost — Textový soubor .puml je malý, čitelný pro člověka a vykreslí se stejně všude.
  • Automatizace — Diagramy lze generovat programově z dat, začlenit do CI pipeline a udržovat v synchronizaci s kódem.

Tip: PlantUML je široce používán v dokumentaci softwarového inženýrství (diagramy architektury, API toky), ale jeho podpora Ganttových diagramů jej činí stejně výkonným i pro projektové manažery a vedoucí týmů, kteří chtějí reprodukovatelné, verzované harmonogramy.

Jak GanttTool využívá PlantUML

GanttTool vám poskytuje vizuální GUI editor — přidáváte úkoly, nastavujete doby trvání, definujete závislosti, vybíráte barvy — ale v zákulisí se vše, co vytvoříte, kompiluje do kódu PlantUML. Ten je poté odeslán na vykreslovací server, který jej převede na SVG diagram zobrazený ve vašem prohlížeči.

Vykreslovací proces

🖱️
GUI editor
úkoly, data, barvy
📄
Kód PlantUML
@startgantt … @endgantt
🔌
POST /api/kroki
Next.js route
🌐
PlantUML / Kroki
vykreslovací server
🖼️
SVG diagram
zobrazen v prohlížeči

API route na /api/kroki funguje jako proxy mezi vaším prohlížečem a vykreslovacími servery. Pracuje ve dvou fázích:

  • Primární: server PlantUML.com — Kód PlantUML je komprimován pomocí Deflate (úroveň 9) a zakódován pomocí vlastní varianty base-64 od PlantUML. Výsledný řetězec je připojen k https://www.plantuml.com/plantuml/svg/~1{encoded} jako GET požadavek. Timeout 3 sekundy chrání před pomalými odpověďmi.
  • Záložní: server Kroki.io — Pokud PlantUML.com selže nebo vyprší timeout, je surový text PlantUML odeslán jako text/plain POST požadavkem na https://kroki.io/plantuml/svg s timeoutem 5 sekund. Kroki je open-source vykreslovací brána, která podporuje mnoho formátů diagramů.

Kterýkoli server odpoví jako první s platným SVG, tento obrázek je vrácen do prohlížeče s hlavičkou Content-Type: image/svg+xml a vykreslen přímo na stránce. Nikdy nemusíte přemýšlet o kódování nebo záložním řešení — prostě to funguje.

Pod pokličkou: Pohled "Kód PlantUML" v postranním panelu GanttTool vám ukáže přesný text, který se odesílá na server. Můžete jej zkopírovat, vložit do PlantText nebo na PlantUML online server a získat stejný diagram.

Syntaxe Ganttových diagramů v PlantUML

Každý Ganttův diagram v PlantUML je uzavřen mezi značky @startgantt / @endgantt. Uvnitř popíšete svůj projekt přirozeným, čitelným stylem.

Základní struktura úkolů

plantuml — základní gantt
@startgantt
' Project title and scale
title Website Redesign Project
Project starts 2026-07-01
printscale weekly

' Phase separator
-- Discovery --

' Regular tasks: [Name] lasts N days
[Requirements gathering] lasts 5 days
[Competitor analysis] lasts 3 days

-- Design --

[Wireframes] lasts 7 days
[Visual design] lasts 10 days
[Visual design] starts at [Wireframes]'s end

-- Development --

[Frontend build] lasts 14 days
[Frontend build] starts at [Visual design]'s end
[Backend integration] lasts 10 days
[Backend integration] starts at [Frontend build]'s end

@endgantt

Milníky

Milníky mají nulovou dobu trvání a zobrazují se jako kosočtvercová značka na časové ose. Definujte je pomocí happens at namísto lasts.

plantuml — milníky a barvy
@startgantt
Project starts 2026-07-01

[Development] lasts 14 days and is colored in CornflowerBlue
[QA Testing] lasts 5 days and is colored in LightGreen
[QA Testing] starts at [Development]'s end

' Milestone — happens at a specific task's end
[Release v1.0] happens at [QA Testing]'s end

' Completion percentage
[Development] is 70% completed

@endgantt

Fázové oddělovače a nastavení projektu

Názvy sekcí uzavřete mezi dvojité pomlčky (-- Název fáze --) a vložíte tak oddělovací řádek. Zkombinujte s celoprojektovým nastavením pro plnou kontrolu.

plantuml — oddělovače a nastavení
@startgantt
title Q3 Product Launch
Project starts 2026-07-01
printscale weekly zoom 2
saturday are closed
sunday are closed
today is colored in Lavender

-- Planning --
[Kickoff meeting] lasts 1 day
[Scope definition] lasts 3 days
[Scope definition] starts at [Kickoff meeting]'s end

-- Build --
[Engineering sprint 1] lasts 10 days
[Engineering sprint 1] starts at [Scope definition]'s end
[Engineering sprint 2] lasts 10 days
[Engineering sprint 2] starts at [Engineering sprint 1]'s end

-- Launch --
[Smoke testing] lasts 2 days
[Smoke testing] starts at [Engineering sprint 2]'s end
[Go live] happens at [Smoke testing]'s end

@endgantt

Klíčová syntaxe Ganttových diagramů přehledně

Syntaxe Co dělá
[Task] lasts N days Vytvoří úkol s dobou trvání ve dnech
[Task] lasts N weeks Doba trvání v týdnech
[B] starts at [A]'s end Závislost konec-začátek
[M] happens at [A]'s end Milník na konci úkolu
-- Phase name -- Vloží oddělovací řádek fáze
[T] is 50% completed Zobrazí průběh dokončení
printscale weekly zoom 2 Týdenní měřítko, 2x přiblížení
saturday are closed Vynechá soboty z doby trvání
[T] is colored in Red Vlastní barva pruhu úkolu

PlantUML nad rámec Ganttových diagramů

Ganttův diagram je jen jedním z více než tuctu typů diagramů, které PlantUML podporuje. Stejná filozofie prostého textu — počáteční značka, popis, koncová značka — platí pro všechny. Zde je přehled nejpoužívanějších typů.

Sekvenční diagramy

Sekvenční diagramy ukazují, jak objekty nebo komponenty interagují v čase — ideální pro API toky, autentizační sekvence a komunikaci mikroslužeb.

plantuml — sekvenční diagram
@startuml
title User Login Flow

Browser -> API: POST /login {email, password}
API -> Database: SELECT user WHERE email=?
Database --> API: user record
alt valid credentials
    API --> Browser: 200 OK + JWT token
else invalid
    API --> Browser: 401 Unauthorized
end
@enduml

Diagramy tříd

Diagramy tříd modelují objektově orientovanou strukturu: třídy, atributy, metody a vztahy. Nezbytné pro dokumentaci softwarové architektury.

plantuml — diagram tříd
@startuml
class Project {
    +id: String
    +name: String
    +startDate: Date
    +getTasks(): Task[]
}

class Task {
    +id: String
    +name: String
    +duration: Number
    +complete(): void
}

class Milestone {
    +name: String
    +date: Date
}

Project "1" o-- "many" Task
Project "1" o-- "many" Milestone
Task <|-- Milestone
@enduml

Další typy diagramů PlantUML

👤

Diagramy případů užití

Ukazují, kteří aktéři interagují s kterými funkcemi systému. Užitečné pro sběr požadavků a prezentace stakeholderům. Syntaxe: @startuml s actor, usecase a šipkami -->.

🔄

Diagramy aktivit

Modelují pracovní postupy, obchodní procesy a rozhodovací toky s počátečními/koncovými uzly, větvením, spojováním a podmíněnými větvemi. Jsou to v podstatě vývojové diagramy s formální sémantikou.

🔀

Stavové diagramy

Reprezentují životní cyklus objektu prostřednictvím stavů a přechodů. Ideální pro modelování stavů objednávek, uživatelských relací nebo režimů zařízení.

🧩

Diagramy komponent

Ukazují, jak jsou systémové komponenty, knihovny a rozhraní sestaveny. Skvělé pro dokumentaci architektur mikroslužeb a topologií nasazení.

🧠

Myšlenkové mapy

Brainstorming a organizace nápadů ve formátu radiálního stromu. Používá odsazené značky * k definování hierarchie. Skvěle funguje pro rozpis funkcí a znalostní mapy.

🗄️

Entitně-relační diagramy (ER)

Modelují databázová schémata s entitami, atributy a vztahy. Podporováno prostřednictvím @startuml / klíčového slova entity nebo dedikovaných ER rozšíření.

Zde je rychlý příklad myšlenkové mapy v PlantUML, který ilustruje, jak i ne-ganttovské diagramy následují stejnou filozofii text-first:

plantuml — myšlenková mapa
@startmindmap
* Project Planning
** Scope
*** Requirements
*** Deliverables
** Schedule
*** Gantt chart
*** Milestones
** Team
*** Roles
*** Resources
** Risks
*** Mitigation plan
@endmindmap

Vyzkoušejte PlantUML online

Pro experimentování s PlantUML nemusíte nic instalovat. Ekosystém nabízí vynikající bezplatné online vykreslovací nástroje:

Doporučený postup: Vytvořte svůj Ganttův diagram vizuálně v GanttTool, klikněte na "Kód PlantUML" v postranním panelu pro zobrazení vygenerovaného textu a poté jej vložte do PlantText nebo na PlantUML.com, pokud chcete pracovat přímo se syntaxí. Získáte to nejlepší z obou světů: vizuální editor a plný přístup k podkladovému formátu diagramu jako kódu.

Začněte vytvářet Ganttovy diagramy

GanttTool vám dává sílu PlantUML, aniž byste museli napsat jediný řádek kódu. Použijte vizuální editor k sestavení harmonogramu projektu a nechte aplikaci, aby automaticky zpracovala syntaxi PlantUML a vykreslení diagramu.

  • Přidávejte úkoly, milníky a fázové oddělovače jedním kliknutím.
  • Nastavujte doby trvání, závislosti, barvy a procenta dokončení vizuálně.
  • Kdykoli si prohlédněte vygenerovaný kód PlantUML — zkopírujte a použijte jej kdekoli.
  • Exportujte jako SVG nebo zkopírujte do schránky jako PNG pro prezentace a dokumentaci.
  • Popište svůj projekt v přirozeném jazyce a nechte AI asistenta vygenerovat kompletní Ganttův návrh.

Vyzkoušejte GanttTool — zdarma, bez registrace

Vytvořte profesionální PlantUML Ganttův diagram během několika minut. Aplikace za vás vygeneruje kód PlantUML — exportujte, sdílejte nebo vložte kamkoli.

Otevřít GanttTool — je to zdarma