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

Ganto diagramaSintaksė

Ganto diagrama

Ganto diagrama – tai stulpelinė diagrama, naudojama projekto eigai ir laikui, reikalingam projektui užbaigti, parodyti. Ganto diagrama rodo dienų skaičių tarp projekto galinių elementų ir apibendrinamųjų elementų pradžios ir pabaigos datų.

Pastabos

Ganto diagrama kiekvieną suplanuotą užduotį įrašo kaip ištisinę juostą, besitęsiančią iš kairės į dešinę. X ašis žymi laiką, Y ašis – skirtingas užduotis ir jų atlikimo eiliškumą.

Dar svarbiau, kai tam tikros užduoties datos, dienos ar konkretus datų rinkinys yra išbraukiami, Ganto diagrama prisitaiko prie šių pakeitimų pratęsdama tiek pat dienų į dešinę, o ne kurdama tarpus užduoties viduje.

Kodas
                            
Kopijuoti
Įterpti
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

Tačiau jei išbrauktos datos patenka tarp dviejų nuosekliai prasidedančių užduočių, išbrauktos datos diagramoje bus praleistos ir paliktos tuščios, o užduotis prasidės pasibaigus išbrauktoms datoms. Kaip parodyta žemiau:

Kodas
                            
Kopijuoti
Įterpti
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

Ganto diagrama naudinga stebint laiką, reikalingą projektui užbaigti, tačiau šiek tiek pakoregavus ją galima naudoti ir „ne darbo dienoms“ grafiškai pavaizduoti.

Sintaksė

Kodas
                            
Kopijuoti
Įterpti
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

Pagal numatytuosius nustatymus užduotys atliekamos nuosekliai; kitos užduoties pradžios data pagal numatytuosius nustatymus yra ankstesnės užduoties pabaigos data.

Užduoties pavadinimas ir jos metaduomenys atskiriami dvitaškiu (:), o metaduomenų elementai – kableliais (,). Galiojančios žymos: active, done, crit ir milestone. Žymos yra neprivalomos, tačiau jei naudojamos, turi būti pateiktos pirmiausia. Apdorojus žymas, likę metaduomenų elementai aiškinami taip:

  • Jei nurodytas vienas elementas, jis nusako, kada užduotis baigiasi. Tai gali būti konkreti data ar laikas arba trukmė. Jei nurodyta trukmė, ji pridedama prie užduoties pradžios datos, kad būtų nustatyta užduoties pabaigos data, atsižvelgiant į visus išbraukimus.
  • Jei nurodyti du elementai, pastarasis aiškinamas taip pat kaip ankstesniu atveju. Pirmasis elementas gali nurodyti aiškią pradžios datą ar laiką (formatas nustatomas pagal dateFormat) arba nurodyti nuorodą į kitą užduotį per after <otherTaskID> [[otherTaskID2 [otherTaskID3]]...]. Pastaruoju atveju užduoties pradžios data nustatoma pagal vėliausią bet kurios nurodytos užduoties pabaigos datą.
  • Jei nurodyti trys elementai, paskutiniai du aiškinami kaip ankstesniu atveju. Pirmasis elementas žymės užduoties ID, kurį galima nurodyti naudojant later <taskID> sintaksę.
Metaduomenų sintaksė Pradžios data Pabaigos data ID
<taskID>, <startDate>, <endDate> startdate, aiškinama naudojant dateformat endDate, aiškinama naudojant dateformat taskID
<taskID>, <startDate>, <length> startdate, aiškinama naudojant dateformat Pradžios data + length taskID
<taskID>, after <otherTaskId>, <endDate> Anksčiau nurodytos užduoties otherTaskID pabaigos data endDate, aiškinama naudojant dateformat taskID
<taskID>, after <otherTaskId>, <length> Anksčiau nurodytos užduoties otherTaskID pabaigos data Pradžios data + length taskID
<taskID>, <startDate>, until <otherTaskId> startdate, aiškinama naudojant dateformat Anksčiau nurodytos užduoties otherTaskID pradžios data taskID
<taskID>, after <otherTaskId>, until <otherTaskId> Anksčiau nurodytos užduoties otherTaskID pabaigos data Anksčiau nurodytos užduoties otherTaskID pradžios data taskID
<startDate>, <endDate> startdate, aiškinama naudojant dateformat 使用 dateformat 解释的 enddate Netaikoma
<startDate>, <length> startdate, aiškinama naudojant dateformat Pradžios data + length Netaikoma
after <otherTaskID>, <endDate> Anksčiau nurodytos užduoties otherTaskID pabaigos data 使用 dateformat 解释的 enddate Netaikoma
after <otherTaskID>, <length> Anksčiau nurodytos užduoties otherTaskID pabaigos data Pradžios data + length Netaikoma
<startDate>, until <otherTaskId> startdate, aiškinama naudojant dateformat Anksčiau nurodytos užduoties otherTaskID pradžios data Netaikoma
after <otherTaskId>, until <otherTaskId> Anksčiau nurodytos užduoties otherTaskID pabaigos data Anksčiau nurodytos užduoties otherTaskID pradžios data Netaikoma
<endDate> Ankstesnės užduoties pabaigos data 使用 dateformat 解释的 enddate Netaikoma
<length> Ankstesnės užduoties pabaigos data Pradžios data + length Netaikoma
until <otherTaskId> Ankstesnės užduoties pabaigos data Anksčiau nurodytos užduoties otherTaskID pradžios data Netaikoma

Trukmės formatas

Nurodant <length>, naudojamas skaičius ir po jo viena iš šių vienetų priesagų:

Vienetas Priesaga Pavyzdys
Milisekundė ms 50ms
Sekundė s 30s
Minutė m 30m
Valanda h 4h
Diena d 7d
Savaitė w 3w
Mėnuo m 2m
Metai y 1y

Taip pat palaikomos dešimtainės reikšmės (pavyzdžiui, 2.5d). Negaliojantys trukmės žymekliai (pavyzdžiui, 3dX) ignoruojami, o užduoties trukmė pagal numatytuosius nustatymus nustatoma nulinė.

Paprastumo dėlei lentelėje nerodomos kelios užduotys, išvardytos naudojant after sintaksę. Toliau pateikiamas pavyzdys:

Kodas
                            
Kopijuoti
Įterpti
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

Pavadinimas

title yra neprivaloma eilutė, rodoma Ganto diagramos viršuje, apibūdinanti visą diagramą.

Išbraukimas

excludes yra neprivaloma savybė, priimanti konkrečias datas (YYYY-MM-DD formatu), savaitės dienas (pavyzdžiui, "sunday") arba "weekends", tačiau negalima naudoti žodžio "weekdays". Šios datos bus pažymėtos diagramoje ir neįtrauktos į užduoties trukmės skaičiavimą. Tai reiškia, kad jei užduoties trukmė apima išbrauktas datas, išbrauktų dienų skaičius bus pridėtas prie užduoties pabaigos laiko, užtikrinant, kad užduoties trukmė atitiktų kode nurodytą.

Savaitgalis

Išbraukdami savaitgalius, savaitgalį galite nustatyti kaip penktadienį ir šeštadienį arba šeštadienį ir sekmadienį. Pagal numatytuosius nustatymus savaitgalis yra šeštadienis ir sekmadienis. Norėdami apibrėžti savaitgalio pradžios dieną, naujoje eilutėje galite pridėti neprivalomą savybę weekend ir po jos – friday arba saturday.

Kodas
                            
Kopijuoti
Įterpti
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

Skyriaus deklaracija

Galite suskirstyti diagramą į atskirus skyrius, atskirdami skirtingas projekto dalis (pavyzdžiui, kūrimą ir dokumentaciją).

Tam eilutės pradžioje naudokite section sintaksę ir suteikite jai pavadinimą. Atkreipkite dėmesį, kad, kitaip nei visos diagramos pavadinimas, šis pavadinimas yra privalomas.

Etapas

Galite pridėti etapų į diagramą. Etapai skiriasi nuo užduočių, nes jie žymi konkretų laiką ir identifikuojami milestone sintakse. Toliau pateikiamas etapų naudojimo pavyzdys: tiksli etapo vieta nustatoma pagal etapo pradžios datą ir užduoties trukmę, kaip parodyta žemiau:

Kodas
                            
Kopijuoti
Įterpti
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

Vertikalioji žymė

vert reiškia vertikalios linijos pridėjimą prie Ganto diagramos, kad būtų galima lengvai paryškinti svarbias datas, pavyzdžiui, terminus, svarbius įvykius ar kontrolinius taškus. Šios žymės tęsiasi per visą diagramą ir yra išdėstomos pagal jūsų nurodytas datas. Skirtingai nei etapai, vertikalios žymės neužima eilutės. Jos yra vien vizualūs atskaitos taškai, padedantys suskaidyti laiko juostą ir lengviau atpažinti svarbias akimirkas.

Kodas
                            
Kopijuoti
Įterpti
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

Datos nustatymas

dateFormat apibrėžia Ganto diagramos elementų datos įvesties formatą, o axisFormat apibrėžia datos išvesties formatą atvaizduojant diagramą.

Įvesties datos formatas

Numatytasis įvesties datos formatas yra YYYY-MM-DD; galite tinkinti dateFormat.

                            
Kopijuoti
Įterpti
dateFormat YYYY-MM-DD

Palaikomos šios formato parinktys:

输入 Pavyzdys Aprašymas
YYYY 2026 4 skaitmenų metai
YY 26 2 skaitmenų metai
Q 1..4 Ketvirčio skaičius
M MM 1..12 Mėnesio skaičius
D DD 1..31 Mėnesio diena
Do 1st..31st Mėnesio diena su kelintiniu skaičiumi
DDD DDDD 1..365 Metų diena
X 1410715640.579 Unix laiko žyma
x 1410715640579 Unix milisekundžių laiko žyma
H HH 0..23 24 valandų laikas
h hh 1..12 12 valandų laikas, naudojamas su a A
a A am pm Priešpiet arba popiet
m mm 0..59 Minutė
s ss 0..59 Sekundžių skaičius
S 0..9 Dešimtoji sekundės dalis
SS 0..99 Šimtoji sekundės dalis
SSS 0..999 Tūkstantoji sekundės dalis
Z ZZ +12:00 Poslinkis nuo UTC, formatu +-HH:mm, +-HHmm arba Z

Koordinačių ašių išvesties datos formatas

Numatytasis išvesties datos formatas yra YYYY-MM-DD. Galite tinkinti axisFormat, pavyzdžiui, 2026-Q1 reiškia 2026 metų pirmąjį ketvirtį.

                            
Kopijuoti
Įterpti
axisFormat %Y-%m-%d

Palaikomos šios formato eilutės:

Formatas,Apibrėžimas
%a Sutrumpintas savaitės dienos pavadinimas
%A Visas savaitės dienos pavadinimas
%b Sutrumpintas mėnesio pavadinimas
%B Visas mėnesio pavadinimas
%c Lokalizuota data ir laikas
%d Diena, dešimtainis skaičius [01,31]
%e Diena, tarpais papildytas dešimtainis skaičius [1,31], atitinka %_d
%H Valanda (24 valandų formatu), dešimtainis skaičius [00,23]
%I Valanda (12 valandų formatu), dešimtainis skaičius [01,12]
%j Metų diena, dešimtainis skaičius [001,366]
%m Mėnuo, dešimtainis skaičius [01,12]
%M Minutė, dešimtainis skaičius [00,59]
%L Milisekundė, dešimtainis skaičius [000, 999]
%p Priešpiet arba popiet
%S Sekundė, dešimtainis skaičius [00,59]
%U Metų savaitė (kai savaitė prasideda sekmadienį), dešimtainis skaičius [00,53]
%w Savaitės diena, tarpais papildytas dešimtainis skaičius [0,6], kur 0 žymi sekmadienį
%W Metų savaitė (kai savaitė prasideda pirmadienį), dešimtainis skaičius [00,53]
%x Lokalizuota datos išraiška, pavyzdžiui: 2026-09-18
%X Lokalizuota laiko išraiška, pavyzdžiui: 14:30:00
%y Metai be šimtmečio, dešimtainis skaičius [00,99], pavyzdžiui, 26 žymi 2026 metus
%Y Metai su šimtmečiu, dešimtainis skaičius
%Z Laiko juostos pavadinimo santrumpa, pavyzdžiui, "-0700"
%% Escape simbolis, naudojamas pačiam procento ženklui % rodyti

Ašių žymės

Numatytosios išvesties žymės yra automatinės. Galite tinkinti tickInterval, pavyzdžiui, 1day arba 1week.

                            
Kopijuoti
Įterpti
tickInterval 1day

Šablonas yra

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

Savaitėmis pagrįstas tickInterval pagal numatytuosius nustatymus prasideda nuo sekmadienio. Jei norite nurodyti kitą darbo dieną, nuo kurios prasideda tickInterval, naudokite weekday parinktį, kaip parodyta kode:

Kodas
                            
Kopijuoti
Įterpti
gantt tickInterval 1week weekday monday

Kompaktiško režimo išvestis

Kompaktiškas režimas leidžia vienoje eilutėje rodyti kelias užduotis. Diagramos rodymo režimas valdomas ankstesniais YAML nustatymais; taip Ganto diagramai įjungiamas kompaktiškas režimas.

Kodas
                            
Kopijuoti
Įterpti
--- 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

Ganto diagramoje galima įrašyti komentarą; analizatorius jį ignoruos. Komentaras turi užimti atskirą eilutę ir prasidėti %% (dvigubu procento ženklu). Bet koks tekstas nuo komentaro pradžios iki kito eilutės lūžio laikomas komentaru, įskaitant bet kokią diagramos sintaksę.

Kodas
                            
Kopijuoti
Įterpti
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

Šiandienos žymė

Galite nustatyti dabartinės datos žymės stilių arba ją paslėpti. Norėdami nustatyti stilių, pridėkite reikšmę todayMarker raktui.

                            
Kopijuoti
Įterpti
todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5

Norėdami paslėpti žymę, nustatykite todayMarker į off.

                            
Kopijuoti
Įterpti
todayMarker off

Pavyzdys

Stulpelinė Ganto diagrama

Kodas
                            
Kopijuoti
Įterpti
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

Laiko juosta (su komentarais, CSS ir išankstine konfigūracija)

Kodas
                            
Kopijuoti
Įterpti
--- # 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