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

Gantt-diagramSyntaks

Gantt-diagram

Et Gantt-diagram er et stolpediagram som brukes til å vise prosjektframdrift og tiden som trengs for å fullføre et prosjekt. Gantt-diagrammet viser antall dager mellom startdato og sluttdato for prosjektets sluttelementer og samlelementer.

Merknader

Et Gantt-diagram registrerer hver planlagte oppgave som en sammenhengende stolpe som strekker seg fra venstre mot høyre. X-aksen representerer tid, og y-aksen registrerer de ulike oppgavene og rekkefølgen de fullføres i.

Enda viktigere: når datoer, dager eller et bestemt sett av datoer for en oppgave utelates, tilpasser Gantt-diagrammet disse endringene ved å forlenge med samme antall dager til høyre, i stedet for å lage hull inne i oppgaven .

Kode
                            
Kopier
Bygg inn
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

Men hvis de utelatte datoene ligger mellom to oppgaver som starter etter hverandre, hoppes de utelatte datoene over på diagrammet og står tomme, og deretter starter oppgaven etter at de utelatte datoene er over. Som vist nedenfor:

Kode
                            
Kopier
Bygg inn
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-diagrammet er nyttig for å spore tiden som trengs for å fullføre et prosjekt, men med noen justeringer kan det også brukes til å grafisk representere "ikke-arbeidsdager".

Syntaks

Kode
                            
Kopier
Bygg inn
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

Oppgaver utføres som standard sammenhengende, og startdatoen for neste oppgave er som standard sluttdatoen for forrige oppgave.

Oppgavetittelen og metadataene skilles med et kolon ( : ), og metadataelementene skilles med komma ( , ). Gyldige tagger inkluderer active , done , crit og milestone . Tagger er valgfrie, men hvis de brukes, må de stå først. Etter at taggene er behandlet, tolkes de gjenstående metadataelementene slik:

  • Hvis ett enkelt element er angitt, bestemmer det når oppgaven avsluttes. Det kan være en konkret dato eller tid, eller en varighet. Hvis en varighet er angitt, legges den til oppgavens startdato for å bestemme sluttdatoen, samtidig som eventuelle utelatelser tas hensyn til.
  • Hvis to elementer er angitt, tolkes det siste elementet på samme måte som i forrige tilfelle. Det første elementet kan angi en eksplisitt startdato eller -tid (format angitt av dateFormat ), eller referere til en annen oppgave via after <otherTaskID> [[otherTaskID2 [otherTaskID3]]...] . I sistnevnte tilfelle settes oppgavens startdato basert på den seneste sluttdatoen til eventuelle refererte oppgaver.
  • Hvis tre elementer er angitt, tolkes de to siste elementene som i tilfellene ovenfor. Det første elementet angir oppgavens ID, og kan refereres med later <taskID> -syntaksen.
Metadata-syntaks Startdato Sluttdato ID
<taskID>, <startDate>, <endDate> startdate tolket med dateformat endDate tolket med dateformat taskID
<taskID>, <startDate>, <length> startdate tolket med dateformat Startdato + length taskID
<taskID>, after <otherTaskId>, <endDate> Sluttdatoen til den tidligere angitte oppgaven otherTaskID endDate tolket med dateformat taskID
<taskID>, after <otherTaskId>, <length> Sluttdatoen til den tidligere angitte oppgaven otherTaskID Startdato + length taskID
<taskID>, <startDate>, until <otherTaskId> startdate tolket med dateformat Startdatoen til den tidligere angitte oppgaven otherTaskID taskID
<taskID>, after <otherTaskId>, until <otherTaskId> Sluttdatoen til den tidligere angitte oppgaven otherTaskID Startdatoen til den tidligere angitte oppgaven otherTaskID taskID
<startDate>, <endDate> startdate tolket med dateformat 使用 dateformat 解释的 enddate Ikke aktuelt
<startDate>, <length> startdate tolket med dateformat Startdato + length Ikke aktuelt
after <otherTaskID>, <endDate> Sluttdatoen til den tidligere angitte oppgaven otherTaskID 使用 dateformat 解释的 enddate Ikke aktuelt
after <otherTaskID>, <length> Sluttdatoen til den tidligere angitte oppgaven otherTaskID Startdato + length Ikke aktuelt
<startDate>, until <otherTaskId> startdate tolket med dateformat Startdatoen til den tidligere angitte oppgaven otherTaskID Ikke aktuelt
after <otherTaskId>, until <otherTaskId> Sluttdatoen til den tidligere angitte oppgaven otherTaskID Startdatoen til den tidligere angitte oppgaven otherTaskID Ikke aktuelt
<endDate> Sluttdatoen til forrige oppgave 使用 dateformat 解释的 enddate Ikke aktuelt
<length> Sluttdatoen til forrige oppgave Startdato + length Ikke aktuelt
until <otherTaskId> Sluttdatoen til forrige oppgave Startdatoen til den tidligere angitte oppgaven otherTaskID Ikke aktuelt

Varighetsformat

Når du angir <length> , bruker du et tall etterfulgt av ett av følgende enhetssuffikser:

Enhet Suffiks Eksempel
Millisekund ms 50ms
Sekund s 30s
Minutt m 30m
Time h 4h
Dag d 7d
Uke w 3w
Måned m 2m
År y 1y

Desimalverdier støttes også (for eksempel 2.5d ). Ugyldige varighetsmarkører (for eksempel 3dX ) ignoreres, og oppgaven får som standard varighet null.

For enkelhets skyld viser ikke tabellen flere oppgaver som er listet opp med after -syntaksen. Følgende er et eksempel:

Kode
                            
Kopier
Bygg inn
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

Tittel

title er en valgfri streng som vises øverst i Gantt-diagrammet og beskriver hele diagrammet.

Utelatelse

excludes er en valgfri egenskap som godtar bestemte datoer (formatet YYYY-MM-DD), ukedager (for eksempel "sunday" ) eller "weekends" , men ordet "weekdays" kan ikke brukes. Disse datoene markeres i diagrammet og utelates fra beregningen av oppgavens varighet. Dette betyr at hvis en oppgaves varighet inneholder utelatte datoer, legges de utelatte dagene til oppgavens sluttid, for å sikre at oppgavens varighet samsvarer med det som er angitt i koden.

Helg

Når du utelater helger, kan du angi helgen til fredag og lørdag, eller lørdag og søndag. Som standard er helgen lørdag og søndag. For å definere startdagen for helgen kan du legge til en valgfri egenskap weekend på en ny linje, etterfulgt av friday eller saturday .

Kode
                            
Kopier
Bygg inn
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

Seksjonsdeklarasjon

Du kan dele diagrammet inn i ulike seksjoner for å skille ulike deler av prosjektet (for eksempel utvikling og dokumentasjon).

For å gjøre dette bruker du section -syntaksen i begynnelsen av en linje og gir den et navn. Merk at i motsetning til tittelen på hele diagrammet, er dette navnet obligatorisk.

Milepæl

Du kan legge til milepæler i diagrammet. Milepæler er forskjellige fra oppgaver fordi de representerer et bestemt tidspunkt, og identifiseres av milestone -syntaksen. Følgende er et eksempel på bruk av milepæler: milepælens nøyaktige plassering bestemmes av milepælens startdato og oppgavens varighet, som vist nedenfor:

Kode
                            
Kopier
Bygg inn
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

Vertikal markør

vert betyr at det legges til vertikale linjer i Gantt-diagrammet for enkelt å utheve viktige datoer, for eksempel frister, viktige hendelser eller kontrollpunkter. Disse markørene strekker seg over hele diagrammet og plasseres basert på datoen du oppgir. I motsetning til milepæler opptar ikke vertikale markører en linje. De er rent visuelle referansepunkter som bidrar til å bryte opp tidslinjen og gjøre viktige øyeblikk lettere å identifisere.

Kode
                            
Kopier
Bygg inn
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

Angi dato

dateFormat definerer inndataformatet for datoer i Gantt-diagramelementer, og axisFormat definerer utdataformatet for datoer når diagrammet rendres.

Inndata-datoformat

Standard inndata-datoformat er YYYY-MM-DD , og du kan tilpasse dateFormat .

                            
Kopier
Bygg inn
dateFormat YYYY-MM-DD

Følgende formatalternativer støttes:

输入 Eksempel Beskrivelse
YYYY 2026 4-sifret årstall
YY 26 2-sifret årstall
Q 1..4 Kvartall
M MM 1..12 Månedstall
D DD 1..31 Dag i måneden
Do 1st..31st Dag i måneden med ordenstall
DDD DDDD 1..365 Dag i året
X 1410715640.579 Unix-tidsstempel
x 1410715640579 Unix-tidsstempel i millisekunder
H HH 0..23 24-timers tid
h hh 1..12 12-timers tid, brukes sammen med a A
a A am pm Formiddag eller ettermiddag
m mm 0..59 Minutt
s ss 0..59 Sekunder
S 0..9 Tidels sekund
SS 0..99 Hundredels sekund
SSS 0..999 Tusendels sekund
Z ZZ +12:00 Forskyvning fra UTC, i formatet +-HH:mm , +-HHmm eller Z

Utdatoformatet for aksen

Standard utdata-datoformat er YYYY-MM-DD . Du kan tilpasse axisFormat , for eksempel 2026-Q1 for første kvartal i 2026.

                            
Kopier
Bygg inn
axisFormat %Y-%m-%d

Følgende formatstrenger støttes:

Format,Definisjon
%a Forkortet navn på ukedag
%A Fullstendig navn på ukedag
%b Forkortet navn på måned
%B Fullstendig navn på måned
%c Lokalisert dato og tid
%d Dato, desimaltall [01,31]
%e Dato, desimaltall fylt med mellomrom [1,31], tilsvarer %_d
%H Time (24-timersformat), desimaltall [00,23]
%I Time (12-timersformat), desimaltall [01,12]
%j Dag i året, desimaltall [001,366]
%m Måned, desimaltall [01,12]
%M Minutt, desimaltall [00,59]
%L Millisekund, desimaltall [000, 999]
%p Formiddag eller ettermiddag
%S Sekund, desimaltall [00,59]
%U Ukenummer i året (med søndag som første dag i uken), desimaltall [00,53]
%w Ukedag, desimaltall fylt med mellomrom [0,6], der 0 representerer søndag
%W Ukenummer i året (med mandag som første dag i uken), desimaltall [00,53]
%x Lokalisert datorepresentasjon, som: 2026-09-18
%X Lokalisert tidsrepresentasjon, som: 14:30:00
%y Årstall uten århundre, desimaltall [00,99], for eksempel står 26 for 2026
%Y Årstall med århundre, desimaltall
%Z Forkortelse for tidssonenavn, for eksempel "-0700"
%% Escapetegn, brukes til å vise selve prosenttegnet %

Aksemerker

Standard utdata-merker er automatiske. Du kan tilpasse tickInterval , for eksempel 1day eller 1week .

                            
Kopier
Bygg inn
tickInterval 1day

Mønsteret er

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

Ukesbasert tickInterval begynner som standard på søndag. Hvis du vil angi en annen ukedag som start for tickInterval , bruker du weekday -alternativet, med følgende kode:

Kode
                            
Kopier
Bygg inn
gantt tickInterval 1week weekday monday

Kompakt modus-utdata

Kompakt modus lar deg vise flere oppgaver på samme linje. Visningsmodusen til grafen styres med den foregående YAML-innstillingen, og aktiverer kompakt modus for Gantt-diagrammet.

Kode
                            
Kopier
Bygg inn
--- 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

Du kan skrive kommentarer i et Gantt-diagram, og parseren ignorerer kommentaren. En kommentar må oppta en egen linje og må begynne med %% (to prosenttegn). All tekst fra kommentarens start til neste linjeskift betraktes som en kommentar, inkludert all diagram-syntaks.

Kode
                            
Kopier
Bygg inn
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

Dagens markør

Du kan angi stil for markøren for gjeldende dato eller skjule den. For å angi stil legger du til en verdi for nøkkelen todayMarker .

                            
Kopier
Bygg inn
todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5

For å skjule markøren setter du todayMarker til off .

                            
Kopier
Bygg inn
todayMarker off

Eksempel

Stolpe-Gantt-diagram

Kode
                            
Kopier
Bygg inn
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

Tidslinje (med kommentarer, CSS og frontmatter-konfigurasjon)

Kode
                            
Kopier
Bygg inn
--- # 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