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

Ganttov diagramSintaksa

Ganttov diagram

Ganttov diagram je vrsta stolpčnega diagrama, ki se uporablja za prikaz napredka projekta in časa, potrebnega za dokončanje projekta. Ganttov diagram prikazuje število dni med začetnim in končnim datumom končnih in povzetih elementov projekta.

Opombe

Ganttov diagram vsako načrtovano opravilo zabeleži kot neprekinjeno vrstico, ki se razteza od leve proti desni. Os x predstavlja čas, os y pa beleži različna opravila in njihov vrstni red dokončanja.

Pomembneje je, da kadar so datumi, dnevi ali določen nabor datumov opravila izključeni, Ganttov diagram te spremembe prilagodi tako, da vrstico podaljša v desno za enako število dni, namesto da bi znotraj opravila ustvaril vrzeli .

Koda
                            
Kopiraj
Vdelava
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

Če pa izključeni datum leži med dvema zaporedno začetima opraviloma, se izključeni datum na diagramu preskoči in pusti prazen, opravilo pa se nato začne po koncu izključenega datuma. Kot je prikazano spodaj:

Koda
                            
Kopiraj
Vdelava
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

Ganttov diagram je uporaben za sledenje času, potrebnemu za dokončanje projekta, z nekaj prilagoditvami pa se lahko uporablja tudi za grafični prikaz "dela prostih dni".

Sintaksa

Koda
                            
Kopiraj
Vdelava
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

Opravila so privzeto zaporedna, začetni datum naslednjega opravila pa je privzeto končni datum prejšnjega opravila.

Naslov opravila in njegovi metapodatki so ločeni z dvopičjem (:), elementi metapodatkov pa so med seboj ločeni z vejicami (,). Veljavne oznake vključujejo active, done, crit in milestone. Oznake so neobvezne, če pa se uporabijo, morajo biti na prvem mestu. Po obdelavi oznak so preostali elementi metapodatkov razloženi takole:

  • Če je določen en element, ta določa, kdaj se opravilo konča. Lahko je določen datum ali čas ali pa trajanje. Če je določeno trajanje, se to prišteje začetnemu datumu opravila, da se določi končni datum opravila, pri čemer se upoštevajo morebitne izključitve.
  • Če sta določena dva elementa, se drugi element razlaga enako kot v prejšnjem primeru. Prvi element lahko določa izrecni začetni datum ali čas (katerega oblika je določena z dateFormat) ali pa se sklicuje na drugo opravilo prek after <otherTaskID> [[otherTaskID2 [otherTaskID3]]...]. V slednjem primeru je začetni datum opravila nastavljen glede na najpoznejši končni datum katerega koli sklicevanega opravila.
  • Če so določeni trije elementi, se zadnja dva razlagata kot v prejšnjem primeru. Prvi element bo predstavljal ID opravila, na katerega se lahko sklicujete s sintakso later <taskID>.
Sintaksa metapodatkov Začetni datum Končni datum ID
<taskID>, <startDate>, <endDate> startdate, interpretiran z dateformat endDate, interpretiran z dateformat taskID
<taskID>, <startDate>, <length> startdate, interpretiran z dateformat Začetni datum + length taskID
<taskID>, after <otherTaskId>, <endDate> Končni datum predhodno določenega opravila otherTaskID endDate, interpretiran z dateformat taskID
<taskID>, after <otherTaskId>, <length> Končni datum predhodno določenega opravila otherTaskID Začetni datum + length taskID
<taskID>, <startDate>, until <otherTaskId> startdate, interpretiran z dateformat Začetni datum predhodno določenega opravila otherTaskID taskID
<taskID>, after <otherTaskId>, until <otherTaskId> Končni datum predhodno določenega opravila otherTaskID Začetni datum predhodno določenega opravila otherTaskID taskID
<startDate>, <endDate> startdate, interpretiran z dateformat 使用 dateformat 解释的 enddate Se ne uporablja
<startDate>, <length> startdate, interpretiran z dateformat Začetni datum + length Se ne uporablja
after <otherTaskID>, <endDate> Končni datum predhodno določenega opravila otherTaskID 使用 dateformat 解释的 enddate Se ne uporablja
after <otherTaskID>, <length> Končni datum predhodno določenega opravila otherTaskID Začetni datum + length Se ne uporablja
<startDate>, until <otherTaskId> startdate, interpretiran z dateformat Začetni datum predhodno določenega opravila otherTaskID Se ne uporablja
after <otherTaskId>, until <otherTaskId> Končni datum predhodno določenega opravila otherTaskID Začetni datum predhodno določenega opravila otherTaskID Se ne uporablja
<endDate> Končni datum prejšnjega opravila 使用 dateformat 解释的 enddate Se ne uporablja
<length> Končni datum prejšnjega opravila Začetni datum + length Se ne uporablja
until <otherTaskId> Končni datum prejšnjega opravila Začetni datum predhodno določenega opravila otherTaskID Se ne uporablja

Oblika trajanja

Pri določanju <length> uporabite število, ki mu sledi eden od naslednjih priponk enote:

Enota Pripona Primer
milisekunda ms 50ms
sekunda s 30s
minuta m 30m
ura h 4h
dan d 7d
teden w 3w
mesec m 2m
leto y 1y

Podprte so tudi decimalne vrednosti (na primer 2.5d). Neveljavne oznake trajanja (na primer 3dX) se prezrejo, opravilo pa ima privzeto trajanje nič.

Zaradi preprostosti tabela ne prikazuje več opravil, naštetih s sintakso after. Spodaj je primer:

Koda
                            
Kopiraj
Vdelava
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

Naslov

title je neobvezen niz, prikazan na vrhu Ganttovega diagrama, ki opisuje celoten diagram.

Izključitev

excludes je neobvezna lastnost, ki sprejema določene datume (v obliki YYYY-MM-DD), dneve v tednu (na primer "sunday") ali "weekends", ne sme pa uporabiti besede "weekdays". Ti datumi bodo označeni na diagramu in izključeni iz izračuna trajanja opravila. To pomeni, da če obdobje trajanja opravila vključuje izključene datume, se izključeni dnevi prištejejo končnemu času opravila, da se zagotovi, da je trajanje opravila skladno s tistim, ki je določeno v kodi.

Konec tedna

Pri izključitvi konca tedna lahko konec tedna nastavite na petek in soboto ali na soboto in nedeljo. Privzeto sta konec tedna sobota in nedelja. Če želite določiti začetni dan konca tedna, lahko v novo vrstico dodate neobvezno lastnost weekend, ki ji sledi friday ali saturday.

Koda
                            
Kopiraj
Vdelava
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

Deklaracija odseka

Diagram lahko razdelite na različne odseke in tako ločite različne dele projekta (na primer razvoj in dokumentacijo).

V ta namen na začetku vrstice uporabite sintakso section in ji dodelite ime. Upoštevajte, da je to ime, za razliko od naslova celotnega diagrama, obvezno.

Mejnik

V diagram lahko dodate mejnike. Mejniki se razlikujejo od opravil, saj predstavljajo določen trenutek in so označeni s sintakso milestone. Sledi primer uporabe mejnikov: natančen položaj mejnika je določen z začetnim datumom mejnika in trajanjem opravila, kot je prikazano spodaj:

Koda
                            
Kopiraj
Vdelava
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

Navpična oznaka

vert pomeni dodajanje navpičnih črt v Ganttov diagram, da se enostavno označijo pomembni datumi, na primer roki, pomembni dogodki ali kontrolne točke. Te oznake segajo čez celoten diagram in so nameščene glede na datum, ki ga navedete. Za razliko od mejnikov navpične oznake ne zasedajo vrstice. So zgolj vizualne referenčne točke, ki pomagajo razčleniti časovni trak in olajšajo prepoznavanje pomembnih trenutkov.

Koda
                            
Kopiraj
Vdelava
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

Nastavitev datuma

dateFormat določa obliko vnosa datuma za elemente Ganttovega diagrama, axisFormat pa določa obliko izpisa datuma pri upodabljanju diagrama.

Oblika vnosa datuma

Privzeta oblika vnosa datuma je YYYY-MM-DD; dateFormat lahko prilagodite.

                            
Kopiraj
Vdelava
dateFormat YYYY-MM-DD

Podprte so naslednje možnosti oblike:

输入 Primer Opis
YYYY 2026 4-mestno leto
YY 26 2-mestno leto
Q 1..4 Številka četrtletja
M MM 1..12 Številka meseca
D DD 1..31 Dan v mesecu
Do 1st..31st Dan v mesecu z vrstilnim števnikom
DDD DDDD 1..365 Dan v letu
X 1410715640.579 Časovni žig Unix
x 1410715640579 Časovni žig Unix v milisekundah
H HH 0..23 24-urni čas
h hh 1..12 12-urni čas, uporablja se z a A
a A am pm dopoldne ali popoldne
m mm 0..59 minuta
s ss 0..59 sekunde
S 0..9 desetinka sekunde
SS 0..99 stotinka sekunde
SSS 0..999 tisočinka sekunde
Z ZZ +12:00 Odmik od UTC, v obliki +-HH:mm, +-HHmm ali Z

Oblika izpisa datuma osi

Privzeta oblika izpisa datuma je YYYY-MM-DD. axisFormat lahko prilagodite, na primer 2026-Q1 pomeni prvo četrtletje leta 2026.

                            
Kopiraj
Vdelava
axisFormat %Y-%m-%d

Podprti so naslednji nizi oblike:

Oblika,Definicija
%a Skrajšano ime dneva v tednu
%A Polno ime dneva v tednu
%b Skrajšano ime meseca
%B Polno ime meseca
%c Lokaliziran datum in čas
%d Datum, decimalno število [01,31]
%e Datum, decimalno število, zapolnjeno s presledki [1,31], enako %_d
%H Ura (24-urni zapis), decimalno število [00,23]
%I Ura (12-urni zapis), decimalno število [01,12]
%j Dan v letu, decimalno število [001,366]
%m Mesec, decimalno število [01,12]
%M Minuta, decimalno število [00,59]
%L Milisekunda, decimalno število [000, 999]
%p dopoldne ali popoldne
%S Sekunda, decimalno število [00,59]
%U Teden v letu (z nedeljo kot prvim dnem tedna), decimalno število [00,53]
%w Dan v tednu, decimalno število, zapolnjeno s presledki [0,6], pri čemer 0 predstavlja nedeljo
%W Teden v letu (s ponedeljkom kot prvim dnem tedna), decimalno število [00,53]
%x Lokaliziran prikaz datuma, na primer: 2026-09-18
%X Lokaliziran prikaz časa, na primer: 14:30:00
%y Leto brez stoletja, decimalno število [00,99], na primer 26 predstavlja leto 2026
%Y Leto s stoletjem, decimalno število
%Z Okrajšava imena časovnega pasu, na primer "-0700"
%% Ubežni znak za prikaz samega znaka odstotka %

Oznaka osi

Privzeti izpis oznak je samodejen. tickInterval lahko prilagodite, na primer 1day ali 1week.

                            
Kopiraj
Vdelava
tickInterval 1day

Vzorec je

                            
Kopiraj
Vdelava
/^([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month)$/;

tickInterval, ki temelji na tednu, se privzeto začne v nedeljo. Če želite določiti drug delovni dan kot začetek tickInterval, uporabite možnost weekday, kot v naslednji kodi:

Koda
                            
Kopiraj
Vdelava
gantt tickInterval 1week weekday monday

Izhod v kompaktnem načinu

Kompaktni način vam omogoča prikaz več opravil v isti vrstici. Z nastavitvijo YAML na začetku nadzorujete način prikaza grafa in omogočite kompaktni način za Ganttov diagram.

Koda
                            
Kopiraj
Vdelava
--- 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

V Ganttov diagram lahko vnesete komentarje, ki jih razčlenjevalnik prezre. Komentar mora zavzemati celotno vrstico in se mora začeti z %% (dvojnim odstotkom). Vsako besedilo od začetka komentarja do naslednjega znaka za novo vrstico se obravnava kot komentar, vključno s katero koli sintakso diagrama.

Koda
                            
Kopiraj
Vdelava
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

Oznaka za danes

Oznaki za trenutni datum lahko nastavite slog ali jo skrijete. Za nastavitev sloga dodajte vrednost ključu todayMarker.

                            
Kopiraj
Vdelava
todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5

Za skritje oznake nastavite todayMarker na off.

                            
Kopiraj
Vdelava
todayMarker off

Primer

Stolpčni Ganttov diagram

Koda
                            
Kopiraj
Vdelava
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

Časovni trak (vključno s komentarji, CSS in konfiguracijo na začetku)

Koda
                            
Kopiraj
Vdelava
--- # 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