PipeScript.PSSVG.ps1
#requires -Module PSSVG $psChevron = Invoke-restMethod https://pssvg.start-automating.com/Examples/PowerShellChevron.svg $RotateEvery = [Timespan]'00:01:30' svg -ViewBox 1920,1080 @( svg.defs @( SVG.GoogleFont -FontName "Roboto" SVG.marker -id 'marker' -ViewBox 100,100 @( svg.polygon -Points (@( "30,0" "35,0" "60,50" "15,100" "12.5,100" "55,50" ) -join ' ') -Fill '#4488ff' -Class 'foreground-fill' ) -MarkerWidth 75 -MarkerHeight 75 -RefX 50 -RefY 50 -Orient 'auto-start-reverse' ) $psChevron.svg.symbol.OuterXml svg.text -FontSize 192 -TextAnchor 'middle' -DominantBaseline 'middle' -X 50% -Y 50% -Content @( SVG.tspan -Content "P" -FontSize .9em SVG.tspan -Content "|" -FontSize .6em -Dx -.4em SVG.tspan -Content "peScr" -FontSize 1em -Dx -.25em SVG.tspan -Content "|" -FontSize .6em -Dx -.4em SVG.tspan -Content "pt" -FontSize .9em -Dx -.25em ) -Style 'font-family: "Roboto", sans-serif' -Fill '#4488ff' -Class 'foreground-fill' $radius = 475 $circleTop = (1920/2), ((1080/2)-$radius) $circleMid = (1920/2), (1080/2) $circleRight = ((1920/2) + $radius),((1080/2)) $circleBottom = (1920/2), ((1080/2)+$radius) $circleLeft = ((1920/2) - $radius),((1080/2)) SVG.ArcPath -Start $circleLeft -End $circleBottom -Sweep -Radius $radius -Large | SVG.ArcPath -Radius $radius -End $circleLeft -Sweep -Stroke '#4488ff' -Class foreground-stroke -fill transparent -markerEnd "url(#marker)" -strokeWidth 1.25 @( svg.animateTransform -AttributeName transform -From "360 $circleMid" -To "0 $circleMid" -dur "$($RotateEvery.TotalSeconds)s" -RepeatCount 'indefinite' -AttributeType 'XML' -Type 'rotate' ) SVG.ArcPath -Start $circleRight -End $circleTop -Sweep -Radius $radius -Large | SVG.ArcPath -Radius $radius -End $circleRight -Sweep -Stroke '#4488ff' -Class foreground-stroke -fill transparent -markerEnd "url(#marker)" -strokeWidth 1.25 @( svg.animateTransform -AttributeName transform -From "360 $circleMid" -To "0 $circleMid" -dur "$($RotateEvery.TotalSeconds)s" -RepeatCount 'indefinite' -AttributeType 'XML' -Type 'rotate' ) ) -OutputPath ( Join-Path $PSScriptRoot Assets | Join-Path -ChildPath "PipeScript.svg" ) |