Diagrammer.Core Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.35] - 2025-11-16
Added
- Enhance Add-DiaNodeIcon cmdlet with new parameters:
- LabelName (allows setting a separate label from the Name parameter)
- Add PORT support to AdditionalInfo hashtable element
Changed
- Increment module version to
0.2.35 - Update Graphviz binaries to v14.0.4
- Suppress output for image processing functions by redirecting to $null
- Add-WatermarkToImage
- ConvertTo-Pdf-WaterMark
Fixed
- Fix issue where reports failed to attach diagrams when DiagramWaterMark option was enabled in AsBuiltReport
[0.2.34] - 2025-11-14
Added
- Add ConvertImageToPDF .Net Assembly to handle image to PDF conversion
- Add support for Net 4.8 (Pwsh 5.1) and Net 9.0 (Pwsh 7.x) platforms
Changed
- Update ConvertTo-Pdf-WaterMark function to use ConvertImageToPDF .Net method for image to PDF conversion
- Migrate ImageProcessor methods to the new namespace Diagrammer.ImageProcessor
- Improve icon path handling in ConvertTo-Svg function
Remove
- Remove ImageMagick path configuration from ConvertTo-Pdf-WaterMark and related files & tests
- Remove redundant platform check for Unix in ConvertTo-RotateImage function
- Remove redundant platform check for Unix in test setup
[0.2.33] - 2025-10-27
Added
- Add .Net Assembly to support Unix Image manipulation replacing System.Drawing.Common dependency
- Add ImageProcessor class to handle image manipulation using SixLabors.ImageSharp
- Add tests for ImageProcessor class methods:
- AddWatermarkToImage
- ConvertToRotateImage
- ResizeImage
- Update module manifest to include SixLabors.ImageSharp as a required assembly
Changed
- Update Graphviz binaries to v14.0.2
- Update ImageMagick binaries to v7.1.2-6
- Enhance cmdlet documentation with detailed parameter descriptions and examples
- Refactor existing cmdlet documentation for clarity and consistency
- Update Get-DiaImagePercent cmdlet to use the new .Net Assembly for better cross-platform compatibility
- Update ConvertTo-RotateImage function for Unix compatibility and improve error handling
- Update Resize-Image function to support Unix platforms and enhance test coverage for percentage and MaintainRatio parameters
- Update Add-WatermarkToImage function for Unix compatibility
Fixed
- Fix Add-DiaHtmlNodeTable cmdlet to correctly render DraftMode icon names
- Fix Get-DiaImagePercent cmdlet to handle Unix-based Image Width and Height retrieval
- Remove SixLabors.ImageSharp.dll from RequiredAssemblies and implement assembly loading logic
Removed
- Remove unused AsBuiltReportMarked.png icon from the project
[0.2.32] - 2025-10-21
Added
- Add Add-DiaNodeText to allow the creation of a text box in the diagram with support for paragraph support
- Add AdvancedExample02.ps1 to demonstrate the use of Add-DiaNodeText cmdlet feature
- Add tests pester for Add-DiaNodeText cmdlet
- Add documentation to website for Add-DiaNodeText cmdlet
- Add Format-HtmlFontProperty to create font properties (Bold, Italic, Underline) for HTML elements
- Add tests pester for Format-HtmlFontProperty cmdlet
- Add NodeObject support to Add-DiaHTMLTable cmdlet
- Add Font Properties parameter to cmdlets to support Bold, Italic, Underline, Strikethrough, Overline, Superscript, Subscript
- Add option generate diagram without logo and MainDiagram title
- Add a horizontal like design to Add-DiaNodeIcon cmdlet
- Add Add-DiaNodeImage cmdlet to add a image with no text
- Add parameter to allow creation of NodeObject in multiple cmdlets
- Add-DiaHTMLTable
- Add-DiaHTMLNodeTable
- Add-DiaNodeIcon
- Add-DiaHtmlLabel
Changed
- Refactor Pester workflow to run tests with code coverage and upload report
- Refactor font properties in tests and Graphviz source files
- Updated font face from 'Segoe Ui Black' to 'Segoe Ui' to ensure consistency
- Moved ImageMagick and Graphviz binaries to Tools folder
- Moved Icons to Tools folder
Fixed
- Fix image dimension validation for GraphObj on non-Unix platforms
[0.2.31] - 2025-10-13
Added
- Add AdvancedExample01.ps1 to demonstrate the use of Add-DiaHTMLSubGraph cmdlet
- Add TableBackgroundColor parameter to Add-DiaHTMLSubGraph cmdlet
- Add Dependabot support for GitHub Actions and PowerShell modules
- Add tests for Add-DiaHTMLSubGraph with custom TableBackgroundColor and update existing test cases
- Add Graphviz support and update documentation
- Install mkdocs-graphviz as a dependency in the workflow.
- Create Dependencies.md to outline essential dependencies for PSGraph.
Changed
- Update index.md with additional content for clarity.
- Modify mkdocs.yml to include Graphviz in markdown extensions and extra JavaScript.
- Update Graphviz binaries to v14.0.1
- Update ImageMagick v7.1.2-5
Fixed
- Fix regex pattern in New-Diagrammer function to correctly match graph object labels for export
- Fix issue with Graphviz v14.0.0 not rendering edges correctly by updating to version v14.0.1
[0.2.30] - 2025-09-18
Added
- Add examples for creating 3-tier web application diagrams using Diagrammer module
- Create Example01.ps1 demonstrating a basic 3-tier web application diagram without object icons.
- Create Example02.ps1 to illustrate connecting nodes and showing relationships in the diagram.
- Create Example03.ps1 featuring a clustered representation of servers using SubGraph.
- Create Example04.ps1 to enhance diagrams with icons and additional server information.
- Create Example05.ps1 to add icons and additional information to Node objects.
- Create Example06.ps1 to enable DraftMode for easier troubleshooting and layout adjustments
- Create Example07.ps1 to demonstrate the use of the Rank.
- Create Example08.ps1 to demonstrate Add-DiaHTMLNodeTable feature
- Create Example09.ps1 to demonstrate Add-DiaHTMLNodeTable with MultiIcon feature
- Create Example10.ps1 to demonstrate the use of the Add-DiaNodeImage cmdlet
- Create Example11.ps1 to demonstrate the use of the Add-DiaHTMLTable cmdlet
- Create Example12.ps1 to demonstrate the use of the WaterMark feature
- Create Example13.ps1 to demonstrate the use of the Signature feature (Add-DiaHtmlSignatureTable)
- Create Example14.ps1 to demonstrate the use of the Custom shapes feature (Add-DiaNodeShape)
- Create Example15.ps1 to demonstrate the use of Add-DiaNodeSpacer cmdlet
- Add multiple icon files for use in tests.
- Update New-Diagrammer.ps1 to support image resolution size and improved icon handling.
- Enhance Add-DiaNodeIcon and related functions to support additional font styling options.
- Update documentation in Todo.md to include new examples and tasks.
- Introduce a new PowerShell function, Add-DiaNodeImage, to generate an HTML table for displaying images with customizable properties such as border, style, and image size.
- Add Join-Hashtable function for merging hashtables
- Introduce the Add-DiaNodeSpacer function for creating spacer nodes.
- Add comprehensive tests for new and modified functions.
Changed
- Enhance function to set cell background color for Icon/SubGraph Icon table rows in Draftmode
- Add-DiaNodeIcon
- Add-DiaHTMLNodeTable
- Update all workflow files to use windows-latest
- Update module manifest
- Enhance Add-DiaHTMLTable with NodeObject support;
- Refactor Split-Array function name
- Update main project icon (Thanks to Copilot)
- Enhance Add-DiaHTMLLabel function with new IconPath parameter and improve image handling
- Update tests to cover new functionality and adjust existing test cases.
- Enhance Export-Diagrammer.ps1 and New-Diagrammer.ps1 to support watermark font opacity.
- Update ImageMagick v7.1.2-3
- Refactor the Add-DiaHtmlSignatureTable function to improve documentation and parameter descriptions.
- Update the Join-Hashtable function to handle null hashtables.
Fixed
- Fix expected output for tests related to HTML tables with logos and labels.
- Fix consistency in the HTML structure for both top and bottom logo placements.
- Fix test cases to reflect the correct HTML output for better validation.
- Fix HTML table output by bolding cell content in Add-DiaHTMLNodeTable function
Removed
- Removed the deprecated Add-DiaNodeFiller function.
[0.2.29] - 2025-08-18
Added
- Add Get-RandomColorHex cmdlet and pester tests
- Add Get-RandomPastelColorHex cmdlet and pester tests
- Enhanced functions to support optional table and cell background colors.
- Add-DiaHTMLNodeTable
- Add-DiaNodeIcon
Changed
- Update Graphviz binaries to v13.1.2
- Updated all workflow files to use actions/checkout@v5.
[0.2.28] - 2025-07-28
Changed
- Update Graphviz binaries to v13.1.1
- Update ImageMagick binaries to v7.1.2
[0.2.27] - 2025-07-23
Added
- Added new test file Add-DiaNodeFiller.Tests.ps1 to validate Add-DiaNodeFiller functionality
- Introduce a Todo file for future enhancements, including research on creating directional lines in dot graphs
- Add additional tests for Get-NodeIP functionality
- Add Add-DiaHorizontalLine and Add-DiaVerticalLine functions for creating horizontal and vertical lines in diagrams.
- Add ConvertTo-Pdf-WaterMark function to convert images to PDF format using ImageMagick, allowing for watermark insertion.
- Add tests for Add-WatermarkToImage, ConvertTo-Pdf-WaterMark, and other conversion functions to ensure functionality and reliability
- Add new line functions: Cross, Inverted T, T, Horizontal and Vertical line shapes
- Added cleanup logic in Resize-Image tests to remove temporary files after tests.
- Add-DiaRightTShapeLine for various L and T shaped connectors in diagrams.
- Implemented Add-DiaInvertedLShapeLine, Add-DiaLShapeLine, Add-DiaLeftLShapeLine, Add-DiaLeftTShapeLine, Add-DiaRightLShapeLine
- Add Pester files for some cmdlet to test functionality:
- Add-DiaVerticalLine
- ConvertTo-RotateImage
Changed
- Increment module version to
0.2.27 - Update function names from Add-DiaHtmlSubGraph to Add-DiaHTMLSubGraph for consistency in Add-DiaHtmlSubGraph.Tests.ps1
- Update test descriptions in Add-DiaNodeIcon.Tests.ps1 to correct spelling and improve clarity
- Update cmdlet verb to better reflect its intended action
- Enhance module with aliases and output types for various functions
- Add diagram line functions, watermarking, and PDF conversion
- Enhance Add-WatermarkToImage function to add watermarks to pdf files, with support for optional parameters.
- Update existing conversion functions (ConvertTo-Dot, ConvertTo-Jpg, ConvertTo-Pdf, ConvertTo-Png) to improve error handling and streamline output.
- Update Graphviz binaries to v13.0.1
- Expanded the Todo list to include new directional line shapes and testing tasks.
- Enhance diagram functions with improved parameterization and debugging options
- Updated Add-DiaLeftTShapeLine, Add-DiaRightLShapeLine, Add-DiaRightTShapeLine, Add-DiaTShapeLine, Add-DiaVerticalLine to include detailed parameter descriptions for better usability.
- Refactored DraftMode parameter to enable visual debugging in diagram functions, highlighting nodes and lines in red.
- Refactored node and edge creation logic to accommodate new parameters and improve clarity.
- Improved example usage in documentation for each function to demonstrate customization capabilities.
- Consolidated versioning and author information across all modified scripts for consistency.
- Updated New-Diagrammer to integrate DraftMode for enhanced visualization debugging.
- Completed various TODO items related to directional lines and line length customization.
- Enhance ConvertTo-RotateImage function with detailed documentation.
Fixed
- Fix spelling errors in test descriptions and update function names for consistency
- Fix isssue in cmdlet Add-DiaHtmlSubGraph pester test
- Fix isssue in cmdlet Get-Add-DiaHTMLNodeTable pester test
- Fix "HMLT" to "HTML" in multiple test descriptions across Add-DiaHtmlSignatureTable.Tests.ps1 and Add-DiaHtmlSubGraph.Tests.ps1
- Fix rotation angle handling in ConvertTo-Svg function
[0.2.26] - 2025-05-09
Changed
- Increment module version to
0.2.26. - Add new parameters to the
Add-DiaHTMLLabelandAdd-DiaNodeIconfunctions. - Update changelog to reflect the latest changes.
- Implement code changes to enhance functionality and improve performance
Fixed
- Fix issue #45
[0.2.25] - 2025-05-04
Changed
- Enable
ValueFromPipelinesupport in theWrite-ColorOutputcmdlet. - Update version to
0.2.25. - Refine verbose messages in the
Add-WatermarkToImageandExport-Diagrammerfunctions for improved clarity. - Enhance font size calculation in the
Add-WatermarkToImagecmdlet for scenarios where no size is specified. - Refactor verbose output messages to use -Message parameter for consistency across functions
Fixed
- Resolve an issue where watermarks were not being generated in base64 format.
[0.2.24] - 2025-04-18
Added
- Add parameters to Add-DiaNodeFiller for icon direction and image handling
Changed
- Improve temporary output filename generation in Export-Diagrammer function
- Bump version to 0.2.24
- Enhance SuppressMessage attributes in New-Diagrammer function
[0.2.23] - 2025-04-15
Changed
- Improve temporary output filename generation in Export-Diagrammer function
- Bump version to 0.2.23
[0.2.22] - 2025-04-11
Changed
- Refactor code structure for improved readability and maintainability
[0.2.21] - 2025-04-09
Added
- Add Add-DiaNodeFiller cmdlet
[0.2.20] - 2025-04-08
Added
- Add jpg to supported export format
Fixed
- Fix Add-DiaNodeIcon cmdlet to honor align parameter
[0.2.19] - 2025-03-04
Added
- Add parameter to set Subgraph Label font size
- Add-DiaHTMLNodeTable
- Add-DiaHTMLTable
Fixed
- Fix Add-DiaHTMLNodeTable cmdlet to honor fontsize parameter
- Fix Add-DiaHTMLTable cmdlet to honor fontsize parameter
- Fix Add-DiaHTMLLabel cmdlet to honor fontsize parameter
[0.2.18] - 2025-03-04
Fixed
- Fix Add-DiaHTMLNodeTable fontsize error when calling debug mode
[0.2.16] - 2025-03-03
Fixed
- Fix Add-DiaHTMLSubGraph cmdlet to honor fontsize parameter
[0.2.15] - 2025-02-21
Changed
- Improved cmdlet documentation
- Added Ordered list to the Add-DiaNodeIcon cmdlet
[0.2.14] - 2025-02-11
Changed
- Update Graphviz binaries to v12.2.1
- Improved cmdlet documentation
[0.2.13] - 2024-11-19
Added
- Add HTMLOutput option to the Convert-DiaTableToHTML cmdlet to allow export of the HTML table
[0.2.12] - 2024-11-12
Changed
- Update Graphviz binaries to v12.2.0
- Improve logging
[0.2.11] - 2024-10-19
Fixed
- Fix error in cmdlet Add-DiaHtmlSignatureTable
[0.2.10] - 2024-10-12
Fixed
- Fix an issue with error handling
[0.2.9] - 2024-10-05
Added
- Add option to mimic Graphviz Subgraph
- Add-DiaHTMLNodeTable
- Add-DiaHTMLTable
- Add-DiaHtmlSubGraph
- Add cmdlet to create the Signature table
- Add-DiaHtmlSignatureTable
Changed
- Update Graphviz binaries to v12.1.2
- Update modules tests
[0.2.8] - 2024-09-17
Added
- Add option to set fontcolor, bgcolor edge color & node fillcolor
Changed
- Update Graphviz binaries to v12.1.1
[0.2.7] - 2024-09-12
Fixed
- Fix Get-NodeIP returning multiple object when there a more than one IP in the DNS record
[0.2.6] - 2024-09-11
Fixed
- Fix Get-NodeIP returning an Array Object and not a string
[0.2.5] - 2024-09-11
Changed
- Enhance the way EnableErrorDebug option works.
Fixed
- Removed error with Write-PSCriboMessage module
[0.2.4] - 2024-09-07
Added
- Add feature to set per object type icon in Add-DiaHtmlNodeTable module
Changed
- Improved New-Diagrammer module
[0.2.3] - 2024-08-31
Changed
- Update Graphviz binaries to v12.1.0
[0.2.2] - 2024-07-06
Changed
- Update Graphviz binaries to v12.0.0
[0.2.1] - 2024-05-16
Added
- Improved Add-DiaHTMLTable and Add-DiaNodeIcon cmdlet
[0.2.0] - 2024-04-29
Changed
- Updated Graphviz to v11.0
[0.1.9] - 2024-03-19
Changed
- Improved Add-DiaHTMLNodeTable function. Close #14
- Allow to add more Information to the Node Object
[0.1.8] - 2024-03-16
Added
- Added Add-WatermarkToImage cmdlet to add WaterMark text to resulting diagrams.
- Added per format export function:
- ConverTo-Base64
- ConverTo-Png
- ConverTo-Pdf
- ConverTo-Dot
- Added function to allow image rotation to 90 degree (ConvertTo-RotateImage)
- Added Initial support for centralized function to create diagram
Changed
- Renamed Out-Diagram to Export-Diagrammer
- Improved Add-DiaHTMLNodeTable
Fixed
[0.1.7] - 2024-02-26
Added
- Added Resize-image cmdlet
Changed
- Improved Get-DiaImagePercent module
- Improved Add-DiaHTMLNodeTable to better align MultiColumn Icon
- Improved Add-DiaNodeIcon debug mode
[0.1.6] - 2024-02-23
Changed
- Improved Get-DiaImagePercent module
[0.1.5] - 2024-02-23
Added
- Added Get-DiaImagePercent module
[0.1.4] - 2024-02-22
Changed
- Added PSGraph to the required module
[0.1.3] - 2024-02-20
Fixed
- Fix missing Graphviz dll files
[0.1.2] - 2024-02-20
Fixed
- Fix PowerShellGallery IconURI
- Module rename due to conflict with ImportExcel
[0.1.1] - 2024-02-20
Added
- Migrated common Diagrammer.Microsoft.AD and Veeam.Diagrammer modules:
- Convert-TableToHTML
- Get-HtmlLabel
- Get-HtmlNodeTable
- Get-HtmlTable
- Get-NodeIP
- Get-NodeIcon
- Out-Diagram
- Remove-SpecialChar
- Split-array
- Test-Image
- Test-Logo
- Write-ColorOutput