mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Replace 4 strings.Replace with 1 strings.Replacer
Consumes less memory, slightly faster.
This commit is contained in:
parent
5df85770fc
commit
2bee4a1570
2 changed files with 7 additions and 8 deletions
|
@ -69,18 +69,16 @@ var blackfridayExtensionMap = map[string]int{
|
||||||
"autoHeaderIds": blackfriday.EXTENSION_AUTO_HEADER_IDS,
|
"autoHeaderIds": blackfriday.EXTENSION_AUTO_HEADER_IDS,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var stripHTMLReplacer = strings.NewReplacer("\n", " ", "</p>", "\n", "<br>", "\n", "<br />", "\n")
|
||||||
|
|
||||||
// StripHTML accepts a string, strips out all HTML tags and returns it.
|
// StripHTML accepts a string, strips out all HTML tags and returns it.
|
||||||
func StripHTML(s string) string {
|
func StripHTML(s string) string {
|
||||||
output := ""
|
|
||||||
|
|
||||||
// Shortcut strings with no tags in them
|
// Shortcut strings with no tags in them
|
||||||
if !strings.ContainsAny(s, "<>") {
|
if !strings.ContainsAny(s, "<>") {
|
||||||
output = s
|
return s
|
||||||
} else {
|
} else {
|
||||||
s = strings.Replace(s, "\n", " ", -1)
|
s = stripHTMLReplacer.Replace(s)
|
||||||
s = strings.Replace(s, "</p>", "\n", -1)
|
|
||||||
s = strings.Replace(s, "<br>", "\n", -1)
|
|
||||||
s = strings.Replace(s, "<br />", "\n", -1) // <br /> is the xhtml line break tag
|
|
||||||
|
|
||||||
// Walk through the string removing all tags
|
// Walk through the string removing all tags
|
||||||
b := new(bytes.Buffer)
|
b := new(bytes.Buffer)
|
||||||
|
@ -97,9 +95,8 @@ func StripHTML(s string) string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
output = b.String()
|
return b.String()
|
||||||
}
|
}
|
||||||
return output
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// StripEmptyNav strips out empty <nav> tags from content.
|
// StripEmptyNav strips out empty <nav> tags from content.
|
||||||
|
|
|
@ -14,6 +14,8 @@ func TestStripHTML(t *testing.T) {
|
||||||
{"<h1>strip h1 tag <h1>", "strip h1 tag "},
|
{"<h1>strip h1 tag <h1>", "strip h1 tag "},
|
||||||
{"<p> strip p tag </p>", " strip p tag \n"},
|
{"<p> strip p tag </p>", " strip p tag \n"},
|
||||||
{"</br> strip br<br>", " strip br\n"},
|
{"</br> strip br<br>", " strip br\n"},
|
||||||
|
{"</br> strip br2<br />", " strip br2\n"},
|
||||||
|
{"This <strong>is</strong> a\nnewline", "This is a newline"},
|
||||||
}
|
}
|
||||||
for i, d := range data {
|
for i, d := range data {
|
||||||
output := StripHTML(d.input)
|
output := StripHTML(d.input)
|
||||||
|
|
Loading…
Reference in a new issue