Public/Node.ps1
function Node { <# .Description Used to specify a nodes attributes or placement within the flow. .Example graph g { node one,two,three } .Example graph g { node top @{shape='house'} node middle node bottom @{shape='invhouse'} edge top,middle,bottom } .Example graph g { node (1..10) } .Notes I had conflits trying to alias Get-Node to node, so I droped the verb from the name. If you have subgraphs, it works best to define the node inside the subgraph before giving it an edge #> [cmdletbinding()] param( # The name of the node [Parameter( Mandatory = $true, ValueFromPipeline = $true, Position = 0 )] [string[]] $Name = 'node', # Node attributes to apply to this node [Parameter( Position = 1 )] [hashtable] $Attributes ) begin { $GraphVizAttribute = ConvertTo-GraphVizAttribute -Attributes $Attributes } process { foreach($node in $Name) { Write-Output ('{0}"{1}" {2}' -f (Get-Indent), $node, $GraphVizAttribute) } } } |