mirror of
https://github.com/gohugoio/hugo.git
synced 2025-09-01 22:42:45 +02:00
Add htmlEscape and htmlUnescape template functions
These functions allow trivial escaping and unescaping of HTML entities, and make it far easier to compose other functions for the creation of parameterised URLs.
This commit is contained in:
committed by
Bjørn Erik Pedersen
parent
7dd5cd675a
commit
20555b1630
@@ -1775,6 +1775,22 @@ func querify(params ...interface{}) (string, error) {
|
||||
return qs.Encode(), nil
|
||||
}
|
||||
|
||||
func htmlEscape(in interface{}) (string, error) {
|
||||
conv, err := cast.ToStringE(in)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return html.EscapeString(conv), nil
|
||||
}
|
||||
|
||||
func htmlUnescape(in interface{}) (string, error) {
|
||||
conv, err := cast.ToStringE(in)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return html.UnescapeString(conv), nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
funcMap = template.FuncMap{
|
||||
"absURL": func(a string) template.HTML { return template.HTML(helpers.AbsURL(a)) },
|
||||
@@ -1803,6 +1819,8 @@ func init() {
|
||||
"gt": gt,
|
||||
"hasPrefix": func(a, b string) bool { return strings.HasPrefix(a, b) },
|
||||
"highlight": highlight,
|
||||
"htmlEscape": htmlEscape,
|
||||
"htmlUnescape": htmlUnescape,
|
||||
"humanize": humanize,
|
||||
"in": in,
|
||||
"index": index,
|
||||
|
||||
@@ -93,6 +93,13 @@ eq: {{ if eq .Section "blog" }}current{{ end }}
|
||||
findRE: {{ findRE "[G|g]o" "Hugo is a static side generator written in Go." 1 }}
|
||||
hasPrefix 1: {{ hasPrefix "Hugo" "Hu" }}
|
||||
hasPrefix 2: {{ hasPrefix "Hugo" "Fu" }}
|
||||
htmlEscape 1: {{ htmlEscape "Cathal Garvey & The Sunshine Band <cathal@foo.bar>" | safeHTML}}
|
||||
htmlEscape 2: {{ htmlEscape "Cathal Garvey & The Sunshine Band <cathal@foo.bar>"}}
|
||||
htmlUnescape 1: {{htmlUnescape "Cathal Garvey & The Sunshine Band <cathal@foo.bar>" | safeHTML}}
|
||||
htmlUnescape 2: {{"Cathal Garvey &amp; The Sunshine Band &lt;cathal@foo.bar&gt;" | htmlUnescape | htmlUnescape | safeHTML}}
|
||||
htmlUnescape 3: {{"Cathal Garvey &amp; The Sunshine Band &lt;cathal@foo.bar&gt;" | htmlUnescape | htmlUnescape }}
|
||||
htmlUnescape 4: {{ htmlEscape "Cathal Garvey & The Sunshine Band <cathal@foo.bar>" | htmlUnescape | safeHTML }}
|
||||
htmlUnescape 5: {{ htmlUnescape "Cathal Garvey & The Sunshine Band <cathal@foo.bar>" | htmlEscape | safeHTML }}
|
||||
humanize 1: {{ humanize "my-first-post" }}
|
||||
humanize 2: {{ humanize "myCamelPost" }}
|
||||
humanize 3: {{ humanize "52" }}
|
||||
@@ -149,6 +156,13 @@ eq: current
|
||||
findRE: [go]
|
||||
hasPrefix 1: true
|
||||
hasPrefix 2: false
|
||||
htmlEscape 1: Cathal Garvey & The Sunshine Band <cathal@foo.bar>
|
||||
htmlEscape 2: Cathal Garvey &amp; The Sunshine Band &lt;cathal@foo.bar&gt;
|
||||
htmlUnescape 1: Cathal Garvey & The Sunshine Band <cathal@foo.bar>
|
||||
htmlUnescape 2: Cathal Garvey & The Sunshine Band <cathal@foo.bar>
|
||||
htmlUnescape 3: Cathal Garvey & The Sunshine Band <cathal@foo.bar>
|
||||
htmlUnescape 4: Cathal Garvey & The Sunshine Band <cathal@foo.bar>
|
||||
htmlUnescape 5: Cathal Garvey & The Sunshine Band <cathal@foo.bar>
|
||||
humanize 1: My first post
|
||||
humanize 2: My camel post
|
||||
humanize 3: 52nd
|
||||
|
||||
Reference in New Issue
Block a user