Register
Process Type
Graphical expression
Mind Type
Structured expression
Note Type
Efficient expression

Ganttův diagramSyntaxe

Ganttův diagram

Ganttův diagram je sloupcový graf používaný k zobrazení průběhu projektu a času potřebného k dokončení projektu. Ganttův diagram zobrazuje počet dní mezi datem zahájení a datem dokončení koncových a souhrnných prvků projektu.

Poznámky

Ganttův diagram zaznamenává každou plánovanou úlohu jako souvislý pruh táhnoucí se zleva doprava. Osa x představuje čas, osa y zaznamenává různé úlohy a pořadí jejich dokončení.

Ještě důležitější je, že pokud je datum, počet dní nebo konkrétní sada dat u úlohy vyloučena, Ganttův diagram se přizpůsobí těmto změnám prodloužením doprava o stejný počet dní, místo aby v úloze vytvořil mezery .

Kód
                            
Kopírovat
Vložení
gantt title A Gantt Diagram dateFormat YYYY-MM-DD excludes 2026-03-16,2026-03-18,2026-03-19 section Section A task :a1, 2026-03-07, 7d Another task :after a1, 5d

Pokud však vyloučené datum leží mezi dvěma úlohami, které začínají po sobě, vyloučené datum se v diagramu přeskočí a zůstane prázdné a úloha pak začne po skončení vyloučeného data. Jak je znázorněno níže:

Kód
                            
Kopírovat
Vložení
gantt title A Gantt Diagram dateFormat YYYY-MM-DD excludes Sunday, Friday, Saturday section Section A task :a1, 2026-03-07, 5d Another task :after a1, 7d

Ganttův diagram je užitečný pro sledování času potřebného k dokončení projektu, ale s určitými úpravami jej lze použít i k grafickému znázornění „nepracovních dnů“.

Syntaxe

Kód
                            
Kopírovat
Vložení
gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid excludes weekends %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".) section A section Completed task :done, des1, 2026-01-06,2026-01-08 Active task :active, des2, 2026-01-09, 3d Future task : des3, after des2, 5d Future task2 : des4, after des3, 5d section Critical tasks Completed task in the critical line :crit, done, 2026-01-06,24h Implement parser and jison :crit, done, after des1, 2d Create tests for parser :crit, active, 3d Future task in critical line :crit, 5d Create tests for renderer :2d Add to mermaid :until isadded Functionality added :milestone, isadded, 2026-01-25, 0d section Documentation Describe gantt syntax :active, a1, after des1, 3d Add gantt diagram to demo page :after a1 , 20h Add another diagram to demo page :doc1, after a1 , 48h section Last section Describe gantt syntax :after doc1, 3d Add gantt diagram to demo page :20h Add another diagram to demo page :48h

Úlohy probíhají ve výchozím nastavení nepřetržitě a datum zahájení další úlohy je ve výchozím nastavení datem ukončení předchozí úlohy.

Název úlohy a její metadata se oddělují dvojtečkou (:) a položky metadat se oddělují čárkami (,). Platné značky zahrnují active, done, crit a milestone. Značky jsou volitelné, ale pokud se použijí, musí být uvedeny na začátku. Po zpracování značek se zbývající položky metadat interpretují takto:

  • Pokud je zadána jediná položka, určuje, kdy úloha skončí. Může to být konkrétní datum nebo čas, případně trvání. Pokud je zadáno trvání, přičte se k datu zahájení úlohy, aby se určilo datum ukončení úlohy, s ohledem na případná vyloučení.
  • Pokud jsou zadány dvě položky, druhá položka se interpretuje stejně jako v předchozím případě. První položka může určit výslovné datum nebo čas zahájení (formát určuje dateFormat), nebo může odkazovat na jinou úlohu pomocí after <otherTaskID> [[otherTaskID2 [otherTaskID3]]...]. V druhém případě se datum zahájení úlohy nastaví podle nejzazšího data ukončení jakékoli odkazované úlohy.
  • Pokud jsou zadány tři položky, poslední dvě položky se interpretují podle předchozích případů. První položka bude představovat ID úlohy, na kterou lze odkazovat pomocí syntaxe later <taskID>.
Syntaxe metadat Datum zahájení Datum ukončení ID
<taskID>, <startDate>, <endDate> startdate interpretované pomocí dateformat endDate interpretované pomocí dateformat taskID
<taskID>, <startDate>, <length> startdate interpretované pomocí dateformat Datum zahájení + length taskID
<taskID>, after <otherTaskId>, <endDate> Datum ukončení dříve zadané úlohy otherTaskID endDate interpretované pomocí dateformat taskID
<taskID>, after <otherTaskId>, <length> Datum ukončení dříve zadané úlohy otherTaskID Datum zahájení + length taskID
<taskID>, <startDate>, until <otherTaskId> startdate interpretované pomocí dateformat Datum zahájení dříve zadané úlohy otherTaskID taskID
<taskID>, after <otherTaskId>, until <otherTaskId> Datum ukončení dříve zadané úlohy otherTaskID Datum zahájení dříve zadané úlohy otherTaskID taskID
<startDate>, <endDate> startdate interpretované pomocí dateformat 使用 dateformat 解释的 enddate Nevztahuje se
<startDate>, <length> startdate interpretované pomocí dateformat Datum zahájení + length Nevztahuje se
after <otherTaskID>, <endDate> Datum ukončení dříve zadané úlohy otherTaskID 使用 dateformat 解释的 enddate Nevztahuje se
after <otherTaskID>, <length> Datum ukončení dříve zadané úlohy otherTaskID Datum zahájení + length Nevztahuje se
<startDate>, until <otherTaskId> startdate interpretované pomocí dateformat Datum zahájení dříve zadané úlohy otherTaskID Nevztahuje se
after <otherTaskId>, until <otherTaskId> Datum ukončení dříve zadané úlohy otherTaskID Datum zahájení dříve zadané úlohy otherTaskID Nevztahuje se
<endDate> Datum ukončení předchozí úlohy 使用 dateformat 解释的 enddate Nevztahuje se
<length> Datum ukončení předchozí úlohy Datum zahájení + length Nevztahuje se
until <otherTaskId> Datum ukončení předchozí úlohy Datum zahájení dříve zadané úlohy otherTaskID Nevztahuje se

Formát trvání

Při zadání <length> použijte číslo následované jednou z následujících přípon jednotek:

Jednotka Přípona Příklad
milisekunda ms 50ms
sekunda s 30s
minuta m 30m
hodina h 4h
den d 7d
týden w 3w
měsíc m 2m
rok y 1y

Podporovány jsou také desetinné hodnoty (například 2.5d). Neplatné značky trvání (například 3dX) budou ignorovány a úloha bude mít výchozí trvání nula.

Pro zjednodušení tabulka nezobrazuje více úloh uvedených pomocí syntaxe after. Následuje příklad:

Kód
                            
Kopírovat
Vložení
gantt apple :a, 2026-07-20, 1w banana :crit, b, 2026-07-23, 1d cherry :active, c, after b a, 1d kiwi :d, 2026-07-20, until b c

Název

title je volitelný řetězec zobrazený v horní části Ganttova diagramu, který popisuje celý diagram.

Vyloučení

excludes je volitelná vlastnost, která přijímá konkrétní datum (formát YYYY-MM-DD), den v týdnu (například "sunday") nebo "weekends", ale nelze použít slovo "weekdays". Tato data se vyznačí v diagramu a vyloučí z výpočtu trvání úlohy. To znamená, že pokud období trvání úlohy zahrnuje vyloučená data, vyloučené dny se přičtou k času ukončení úlohy, aby trvání úlohy odpovídalo hodnotě zadané v kódu.

Víkend

Při vyloučení víkendu lze víkend nastavit na pátek a sobotu nebo na sobotu a neděli. Ve výchozím nastavení je víkend sobota a neděle. Chcete-li definovat počáteční den víkendu, můžete na nový řádek přidat volitelnou vlastnost weekend následovanou friday nebo saturday.

Kód
                            
Kopírovat
Vložení
gantt title A Gantt Diagram Excluding Fri - Sat weekends dateFormat Букмекерлар-MM-DD excludes weekends weekend friday section Section A task :a1, 2026-01-01, 30d Another task :after a1, 20d

Deklarace části

Diagram můžete rozdělit na jednotlivé části a oddělit tak různé části projektu (například vývoj a dokumentaci).

Za tímto účelem použijte na začátku řádku syntaxi section a pojmenujte ji. Všimněte si, že na rozdíl od názvu celého diagramu je tento název povinný.

Milník

Do diagramu můžete přidat milníky. Milníky se liší od úloh, protože představují konkrétní čas a jsou označeny syntaxí milestone. Následuje příklad použití milníku: přesná poloha milníku je určena datem zahájení milníku a trváním úlohy, jak je znázorněno níže:

Kód
                            
Kopírovat
Vložení
gantt dateFormat HH:mm axisFormat %H:%M Initial milestone : milestone, m1, 17:49, 2m Task A : 10m Task B : 5m Final milestone : milestone, m2, 18:08, 4m

Vertikální značka

vert znamená přidání svislé čáry do Ganttova diagramu pro snadné zvýraznění důležitých dat, jako jsou termíny, důležité události nebo kontrolní body. Tyto značky se táhnou celým diagramem a umisťují se podle vámi zadaného data. Na rozdíl od milníků vertikální značky nezabírají řádek. Jsou čistě vizuálními referenčními body, které pomáhají rozdělit časovou osu a usnadňují rozpoznání důležitých okamžiků.

Kód
                            
Kopírovat
Vložení
gantt dateFormat HH:mm axisFormat %H:%M Initial vert : vert, v1, 17:30, 2m Task A : 3m Task B : 8m Final vert : vert, v2, 17:58, 4m

Nastavení data

dateFormat definuje vstupní formát data prvků Ganttova diagramu; axisFormat definuje výstupní formát data při vykreslování diagramu.

Vstupní formát data

Výchozí vstupní formát data je YYYY-MM-DD; dateFormat můžete přizpůsobit.

                            
Kopírovat
Vložení
dateFormat YYYY-MM-DD

Podporovány jsou následující možnosti formátu:

输入 Příklad Popis
YYYY 2026 Čtyřmístný rok
YY 26 Dvojmístný rok
Q 1..4 Číslo čtvrtletí
M MM 1..12 Číslo měsíce
D DD 1..31 Den v měsíci
Do 1st..31st Pořadový den v měsíci
DDD DDDD 1..365 Den v roce
X 1410715640.579 Časové razítko Unix
x 1410715640579 Časové razítko Unix v milisekundách
H HH 0..23 Čas ve 24hodinovém formátu
h hh 1..12 Čas ve 12hodinovém formátu, používá se s a A
a A am pm Dopoledne nebo odpoledne
m mm 0..59 minuta
s ss 0..59 Sekundy
S 0..9 Desetina sekundy
SS 0..99 Setina sekundy
SSS 0..999 Tisícina sekundy
Z ZZ +12:00 Posun od UTC ve formátu +-HH:mm, +-HHmm nebo Z

Výstupní formát data osy

Výchozí výstupní formát data je YYYY-MM-DD. Můžete přizpůsobit axisFormat, například 2026-Q1 představuje první čtvrtletí roku 2026.

                            
Kopírovat
Vložení
axisFormat %Y-%m-%d

Podporovány jsou následující řetězce formátu:

Formát,Definice
%a Zkrácený název dne v týdnu
%A Úplný název dne v týdnu
%b Zkrácený název měsíce
%B Úplný název měsíce
%c Lokalizované datum a čas
%d Datum, desítkové číslo [01,31]
%e Datum, desítkové číslo vyplněné mezerami [1,31], odpovídá %_d
%H Hodina (24hodinový formát), desítkové číslo [00,23]
%I Hodina (12hodinový formát), desítkové číslo [01,12]
%j Den v roce, desítkové číslo [001,366]
%m Měsíc, desítkové číslo [01,12]
%M Minuty, desítkové číslo [00,59]
%L Milisekundy, desítkové číslo [000, 999]
%p Dopoledne nebo odpoledne
%S Sekundy, desítkové číslo [00,59]
%U Týden v roce (první den týdne je neděle), desítkové číslo [00,53]
%w Den v týdnu, desítkové číslo vyplněné mezerami [0,6], kde 0 představuje neděli
%W Týden v roce (první den týdne je pondělí), desítkové číslo [00,53]
%x Lokalizované znázornění data, například: 2026-09-18
%X Lokalizované znázornění času, například: 14:30:00
%y Rok bez století, desítkové číslo [00,99], například 26 představuje rok 2026
%Y Rok se stoletím, desítkové číslo
%Z Zkratka názvu časového pásma, například "-0700"
%% Escape znak pro zobrazení samotného znaku procenta %

Dílky osy

Výchozí výstupní dílky jsou automatické. Můžete přizpůsobit tickInterval, například 1day nebo 1week.

                            
Kopírovat
Vložení
tickInterval 1day

Vzor je

                            
Kopírovat
Vložení
/^([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month)$/;

tickInterval založený na týdnech začíná ve výchozím nastavení nedělí. Pokud chcete zadat jiný pracovní den, kterým tickInterval začíná, použijte možnost weekday, kód je následující:

Kód
                            
Kopírovat
Vložení
gantt tickInterval 1week weekday monday

Výstup v kompaktním režimu

Kompaktní režim umožňuje zobrazit více úloh na stejném řádku. Režim zobrazení grafu se řídí předchozím nastavením YAML, které povolí kompaktní režim pro Ganttův diagram.

Kód
                            
Kopírovat
Vložení
--- displayMode: compact --- gantt title A Gantt Diagram dateFormat YYYY-MM-DD section Section A task :a1, 2026-01-01, 30d Another task :a2, 2026-01-20, 25d Another one :a3, 2026-02-10, 20d

Do Ganttova diagramu můžete vkládat komentáře, které parser ignoruje. Komentář musí zabírat samostatný řádek a musí začínat %% (dvěma znaky procenta). Veškerý text od začátku komentáře do dalšího znaku nového řádku je považován za komentář, včetně jakékoli syntaxe diagramu.

Kód
                            
Kopírovat
Vložení
gantt title A Gantt Diagram %% This is a comment 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

Značka dneška

Můžete nastavit styl značky aktuálního data nebo ji skrýt. Chcete-li nastavit styl, přidejte hodnotu pro klíč todayMarker.

                            
Kopírovat
Vložení
todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5

Chcete-li značku skrýt, nastavte todayMarker na off.

                            
Kopírovat
Vložení
todayMarker off

Příklad

Sloupcový Ganttův diagram

Kód
                            
Kopírovat
Vložení
gantt title Git Issues - days since last update dateFormat X axisFormat %s section Issue19062 71 : 0, 71 section Issue19401 36 : 0, 36 section Issue193 34 : 0, 34 section Issue7441 9 : 0, 9 section Issue1300 5 : 0, 5

Časová osa (obsahující komentáře, CSS a frontmatter konfiguraci)

Kód
                            
Kopírovat
Vložení
--- # Frontmatter config, YAML comments title: Ignored if specified in chart displayMode: compact #gantt specific setting but works at this level too config: # theme: forest # themeCSS: " #item36 { fill: CadetBlue } " themeCSS: " // YAML supports multiline strings using a newline markers: #item36 { fill: CadetBlue } // Custom marker workaround CSS from forum (below) rect[id^=workaround] { height: calc(100% - 50px) ; transform: translate(9px, 25px); y: 0; width: 1.5px; stroke: none; fill: red; } text[id^=workaround] { fill: red; y: 100%; font-size: 15px;} " gantt: useWidth: 400 rightPadding: 0 topAxis: true #false numberSectionStyles: 2 --- gantt title Timeline - Gantt Sampler dateFormat YYYY axisFormat %y %% this next line doesn't recognise 'decade' or 'year', but will silently ignore tickInterval 1decade section Issue19062 71 : item71, 1900, 1930 section Issue19401 36 : item36, 1913, 1935 section Issue1300 94 : item94, 1910, 1915 5 : item5, 1920, 1925 0 : milestone, item0, 1918, 1s 9 : vert, 1906, 1s %% not yet official 64 : workaround, 1923, 1s %% custom CSS object https://github.com/mermaid-js/mermaid/issues/3250