Functions/Public/h2.ps1
Function h2 { <# .SYNOPSIS Create a h2 title in an HTML document. .EXAMPLE h2 .EXAMPLE h2 "woop1" -Class "class" .EXAMPLE h2 "woop2" -Class "class" -Id "MainTitle" .EXAMPLE h2 {"woop3"} -Class "class" -Id "MaintTitle" -Style "color:red;" .Notes Author: Stéphane van Gulick Version: 1.0.0 History: 2018.04.08;Stephanevg; Updated to version 1.0: Updated content block to support string & ScriptBlock 2018.03.25;@Stephanevg; Creation .LINK https://github.com/Stephanevg/PSHTML #> [Cmdletbinding()] Param( [Parameter(Mandatory=$false)] [AllowEmptyString()] [AllowNull()] $Content, [AllowEmptyString()] [AllowNull()] [String]$Class, [String]$Id, [AllowEmptyString()] [AllowNull()] [String]$Style, [Hashtable]$Attributes ) $attr = "" $CommonParameters = ("Attributes", "Content") + [System.Management.Automation.PSCmdlet]::CommonParameters + [System.Management.Automation.PSCmdlet]::OptionalCommonParameters $CustomParameters = $PSBoundParameters.Keys | Where-Object -FilterScript { $_ -notin $CommonParameters } if($CustomParameters){ foreach ($entry in $CustomParameters){ $Attr += "{0}=`"{1}`" " -f $entry,$PSBoundParameters[$entry] } } if($Attributes){ foreach($entry in $Attributes.Keys){ $attr += "{0}=`"{1}`" " -f $entry,$Attributes[$Entry] } } if($attr){ "<h2 {0} >" -f $attr }else{ "<h2>" } if($Content){ if($Content -is [System.Management.Automation.ScriptBlock]){ $Content.Invoke() }else{ $Content } } '</h2>' } |