diff --git a/ConvertFrom-XmlElement.ps1 b/ConvertFrom-XmlElement.ps1 index ec827df..64bf56a 100644 --- a/ConvertFrom-XmlElement.ps1 +++ b/ConvertFrom-XmlElement.ps1 @@ -35,7 +35,9 @@ webPages:Enabled false [Parameter(ParameterSetName='SelectXmlInfo',Position=0,Mandatory=$true,ValueFromPipeline=$true)] [Microsoft.PowerShell.Commands.SelectXmlInfo] $SelectXmlInfo, # Only include attributes, ignore other child nodes. -[Alias('Attributes','Atts')][switch] $OnlyAttributes +[Alias('Attributes','Atts')][switch] $OnlyAttributes, +# Replace any simple element that only contains one other element with its child. +[Alias('CollapseSimple')][switch] $SimpleSuccession ) Process { @@ -61,7 +63,8 @@ Process { return $Element.InnerText } - elseif(($Element.SelectNodes('*') |Group-Object Name |Measure-Object).Count -eq 1) + elseif($SimpleSuccession -and ($Element.Attributes.Count -eq 0) -and + (($Element.SelectNodes('*') |Group-Object Name |Measure-Object).Count -eq 1)) { return @($Element.SelectNodes('*') |ConvertFrom-XmlElement.ps1) } diff --git a/Export-MermaidXY.ps1 b/Export-MermaidXY.ps1 index 9d6d49c..b533176 100644 --- a/Export-MermaidXY.ps1 +++ b/Export-MermaidXY.ps1 @@ -57,7 +57,9 @@ Begin End { $data = $input - $labels = $data |Select-Object -ExpandProperty $LabelProperty + $labels = $data | + Select-Object -ExpandProperty $LabelProperty | + ForEach-Object {$_ -match '\W' ? "`"$($_ -replace '"')`"" : $_} $minmax = $LineProperty + $BarProperty |ForEach-Object {$data |Select-Object -ExpandProperty $_} |Measure-Object -Minimum -Maximum $min = $minmax.Minimum -gt 0 ? 0 : $minmax.Minimum $max = $minmax.Maximum diff --git a/Uninstall-OldModules.ps1 b/Uninstall-OldModules.ps1 index 3adea98..eb5a29f 100644 --- a/Uninstall-OldModules.ps1 +++ b/Uninstall-OldModules.ps1 @@ -22,5 +22,5 @@ Get-Module -ListAvailable | Group-Object Name | Where-Object Count -gt 1 | ForEach-Object {$_.Group |Sort-Object Version -Descending |Select-Object -Skip 1} | - Where-Object {$PSCmdlet.ShouldProcess("$($_.Name) v$($_.Version)",'Uninstall-Module')} | + Where-Object {$Force -or $PSCmdlet.ShouldProcess("$($_.Name) v$($_.Version)",'Uninstall-Module')} | ForEach-Object {Uninstall-Module $_.Name -RequiredVersion $_.Version -Force:$Force}