Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions PSMermaid.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@
'New-MermaidERDiagramRelationShipType'
'New-MermaidGitGraphEntry'
'New-MermaidGitGraph'
'New-MermaidGanttChart'
'New-MermaidGanttChartSection'
'New-MermaidGanttChartEvent'
)

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
Expand Down
30 changes: 30 additions & 0 deletions Public/Gantt/New-MermaidGanttChart.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
function New-MermaidGanttChart {
[CmdletBinding()]
param (
$Title = $null,
$dateFormat = 'YYYY-MM-DD',
$axisFormat = '%a%d',
[string[]] $Section
)

begin {
$output = [System.Text.StringBuilder]::new()
$output.AppendLine("gantt") | Out-Null
if(-not([string]::IsNullOrEmpty($Title))){
$output.AppendLine("`ttitle $Title") | Out-Null
}
$Output.AppendLine("`tdateFormat $dateFormat") | Out-Null
$Output.AppendLine("`texcludes weekends") | Out-Null
$Output.AppendLine("`taxisFormat $axisFormat") | Out-Null
}

process {
foreach($SectionElement in $Section){
$output.AppendLine($SectionElement) |Out-Null
}
}

end {
return $output.ToString()
}
}
24 changes: 24 additions & 0 deletions Public/Gantt/New-MermaidGanttChartEvent.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
function New-MermaidGanttChartEvent {
[CmdletBinding()]
param (
$Label,
[ValidateSet('active', 'done', 'crit','milestone')]$Tag = $null,
$TID,
$Startdate,
$Enddate

)

begin {
$ReturnString = ""
}

process {
$ReturnString = " {0} : {1} ,{2}, {3:yyyy-MM-dd}, {4:yyyy-MM-dd}" -f $Label, $Tag, $TID, $Startdate, $Enddate
}

end {
return $ReturnString
}
}

22 changes: 22 additions & 0 deletions Public/Gantt/New-MermaidGanttChartSection.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
function New-MermaidGanttChartSection {
[CmdletBinding()]
param (
$Title,
[string[]]$Events
)

begin {
$output = [System.Text.StringBuilder]::new()
$output.Append(" section $Title`n") | Out-Null
}

process {
foreach($EventElement in $Events){
$output.AppendLine(" $EventElement") | Out-Null
}
}

end {
return $output.ToString()
}
}
78 changes: 75 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,18 @@ The full changelog you can find [here](https://github.com/HCRitter/PSMermaid/blo
- [x] GitGraph
- [ ] Sequence Diagram
- [ ] State Diagram
- [ ] Gantt
- [x] Gantt
- [ ] Requirement Diagram

## Changelog

### Version 0.1.2

#### Changes

- Added basic functionality to create a 'Gantt'
- Following new functions: 'New-MermaidGanttChart', 'New-MermaidGanttChartSection', 'New-MermaidGanttChartEvent' created

### Version 0.1.1

#### Changes
Expand All @@ -43,7 +50,7 @@ The full changelog you can find [here](https://github.com/HCRitter/PSMermaid/blo

#### Changes

- Added basic functionality to create a 'QuardrantChart'
- Added basic functionality to create a 'QuadrantChart'
- Following new functions: 'New-MermaidQuadrantChart','New-MermaidQuadrantChartAxis', 'New-MermaidQuadrantChartDataSet','New-MermaidQuadrantChartQuadrant' created

### Version 0.0.8
Expand Down Expand Up @@ -477,4 +484,69 @@ gitGraph
commit id: "THREE"
checkout develop
commit id: "C"
```
```

### Create a Gantt Chart

```powershell

$topaxis='true'
$header=@"
---
displayMode: compact
config:
theme: base
themeVariables:
primaryColor: "#4682B4"
gantt:
topAxis: $topaxis
---

"@

$header
New-MermaidGanttChart -Title "Team Absence" -Section @(
$(New-MermaidGanttChartSection -Title 'Bob' -Events @(
$(New-MermaidGanttChartEvent -Label 'Holiday' -Tag 'active' -TID 1 -StartDate '2024-08-01' -Enddate '2024-08-14'),
$(New-MermaidGanttChartEvent -Label 'National Holiday' -Tag 'milestone' -TID 2 -StartDate '2024-08-26' -Enddate '2024-08-27')
)),
$(New-MermaidGanttChartSection -Title 'Billy' -Events @(
$(New-MermaidGanttChartEvent -Label 'Holiday' -Tag 'done' -TID 1 -StartDate '2024-08-14' -Enddate '2024-08-17'),
$(New-MermaidGanttChartEvent -Label 'National Holiday' -Tag 'milestone' -TID 2 -StartDate '2024-08-26' -Enddate '2024-08-27')
)),
$(New-MermaidGanttChartSection -Title 'Mary' -Events @(
$(New-MermaidGanttChartEvent -Label 'Unapproved' -Tag 'crit' -TID 1 -StartDate '2024-08-19' -Enddate '2024-08-21'),
$(New-MermaidGanttChartEvent -Label 'National Holiday' -Tag 'milestone' -TID 2 -StartDate '2024-08-26' -Enddate '2024-08-27')
))

)
```

```mermaid
---
displayMode: compact
config:
theme: dark
themeVariables:

gantt:
topAxis: true
---

gantt
title Team Absence
dateFormat YYYY-MM-DD
excludes weekends
axisFormat %a%d
section Bob
Holiday : active ,1, 2024-08-01, 2024-08-14
National Holiday : milestone ,2, 2024-08-26, 2024-08-27

section Billy
Holiday : active ,1, 2024-08-14, 2024-08-17
National Holiday : milestone ,2, 2024-08-26, 2024-08-27

section Mary
Unapproved : crit ,1, 2024-08-19, 2024-08-21
National Holiday : milestone ,2, 2024-08-26, 2024-08-27
```
35 changes: 34 additions & 1 deletion example.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -292,4 +292,37 @@ new-MermaidGitGraph -Entry @(
$(New-MermaidGitGraphEntryCommit -id "THREE"),
$(New-MermaidGitGraphEntryCheckOut -name "develop"),
$(New-MermaidGitGraphEntryCommit -id "C")
)
)


# Create a Gantt Chart
$topaxis='true'
$header=@"
---
displayMode: compact
config:
theme: base
themeVariables:
primaryColor: "#4682B4"
gantt:
topAxis: $topaxis
---

"@

$header
New-MermaidGanttChart -Title "Team Absence" -Section @(
$(New-MermaidGanttChartSection -Title 'Bob' -Events @(
$(New-MermaidGanttChartEvent -Label 'Holiday' -Tag 'active' -TID 1 -StartDate '2024-08-01' -Enddate '2024-08-14'),
$(New-MermaidGanttChartEvent -Label 'National Holiday' -Tag 'milestone' -TID 2 -StartDate '2024-08-26' -Enddate '2024-08-27')
)),
$(New-MermaidGanttChartSection -Title 'Billy' -Events @(
$(New-MermaidGanttChartEvent -Label 'Holiday' -Tag 'done' -TID 1 -StartDate '2024-08-14' -Enddate '2024-08-17'),
$(New-MermaidGanttChartEvent -Label 'National Holiday' -Tag 'milestone' -TID 2 -StartDate '2024-08-26' -Enddate '2024-08-27')
)),
$(New-MermaidGanttChartSection -Title 'Mary' -Events @(
$(New-MermaidGanttChartEvent -Label 'Unapproved' -Tag 'crit' -TID 1 -StartDate '2024-08-19' -Enddate '2024-08-21'),
$(New-MermaidGanttChartEvent -Label 'National Holiday' -Tag 'milestone' -TID 2 -StartDate '2024-08-26' -Enddate '2024-08-27')
))

)