-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGet-HtmlEncoded.ps1
More file actions
83 lines (76 loc) · 3.45 KB
/
Get-HtmlEncoded.ps1
File metadata and controls
83 lines (76 loc) · 3.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
function Get-HtmlEncoded {
[CmdletBinding()]
param (
[Parameter(Mandatory = $false)]
[string]$taggedString
)
begin {
Write-Verbose -Message ((Get-ResStr 'STARTING_FUNCTION') -f $myInvocation.Mycommand)
New-Variable -Name 'result' -Scope 'Private' -Value ([string]'')
$initialVariables = Get-CurrentVariables -Debug:$DebugPreference
}
process {
$result = $taggedString
$result = $result.replace('\r', '')
$result = $result.replace('\n', '{br/}')
# Replace <br> and <strong> tags with placeholders
$result = $result -replace "`r", ''
$result = $result -replace "`n", '{br/}'
$result = $result -replace '<br>', '{br/}'
$result = $result -replace '<br/>', '{br/}'
$result = $result -replace '<br />', '{br/}'
$result = $result -replace '<strong>', '{strong}'
$result = $result -replace '</strong>', '{/strong}'
$result = $result -replace '<b>', '{b}'
$result = $result -replace '</b>', '{/b}'
$result = $result -replace '<i>', '{i}'
$result = $result -replace '</i>', '{/i}'
$result = $result -replace '<h1>', '{h1}'
$result = $result -replace '</h1>', '{/h1}'
$result = $result -replace '<h2>', '{h2}'
$result = $result -replace '</h2>', '{/h2}'
$result = $result -replace '<h3>', '{h3}'
$result = $result -replace '</h3>', '{/h3}'
$result = $result -replace '<p>', '{p}'
$result = $result -replace '</p>', '{/p}'
$result = $result -replace '<pre>', '{pre}'
$result = $result -replace '</pre>', '{/pre}'
$result = $result -replace '<ul>', '{ul}'
$result = $result -replace '</ul>', '{/ul}'
$result = $result -replace '<ol>', '{ol}'
$result = $result -replace '</ol>', '{/ol}'
$result = $result -replace '<li>', '{li}'
$result = $result -replace '</li>', '{/li}'
# Encode the string
[string]$result = [System.Web.HttpUtility]::HtmlEncode($result)
# Replace the placeholders with the original tags
$result = $result -replace '{br/}', '<br/>'
$result = $result -replace '{strong}', '<strong>'
$result = $result -replace '{/strong}', '</strong>'
$result = $result -replace '{b}', '<b>'
$result = $result -replace '{/b}', '</b>'
$result = $result -replace '{i}', '<i>'
$result = $result -replace '{/i}', '</i>'
$result = $result -replace '{h1}', '<h1>'
$result = $result -replace '{/h1}', '</h1>'
$result = $result -replace '{h2}', '<h2>'
$result = $result -replace '{/h2}', '</h2>'
$result = $result -replace '{h3}', '<h3>'
$result = $result -replace '{/h3}', '</h3>'
$result = $result -replace '{p}', '<p>'
$result = $result -replace '{/p}', '</p>'
$result = $result -replace '{pre}', '<pre>'
$result = $result -replace '{/pre}', '</pre>'
$result = $result -replace '{ul}', '<ul>'
$result = $result -replace '{/ul}', '</ul>'
$result = $result -replace '{ol}', '<ol>'
$result = $result -replace '{/ol}', '</ol>'
$result = $result -replace '{li}', '<li>'
$result = $result -replace '{/li}', '</li>'
}
end {
Get-CurrentVariables -InitialVariables $initialVariables -Debug:$DebugPreference
Return $result
}
# Test: Get-HtmlEncoded -taggedString 'This is <b>bold</b> and this > > not'
}