summaryrefslogtreecommitdiffstats
path: root/hugolib
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-05-25 10:56:14 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-05-25 17:55:23 +0200
commit3854a6fa6c323d1c09aa71a0626c9eef62709294 (patch)
treeea3727c14f73fb73aef89d43795dd6d6f75f1220 /hugolib
parentcd0112a05a9ddb7043c9808284f93d8099c48473 (diff)
Fix Plainify edge cases
This commit replaces the main part of `helpers.StripHTML` with Go's implementation in its html/template package. It's a little slower, but correctness is more important: ```bash BenchmarkStripHTMLOld-10 680316 1764 ns/op 728 B/op 4 allocs/op BenchmarkStripHTMLNew-10 384520 3099 ns/op 2089 B/op 10 allocs/op ``` Fixes #9199 Fixes #9909 Closes #9410
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/page__per_output.go2
-rw-r--r--hugolib/page_test.go5
2 files changed, 4 insertions, 3 deletions
diff --git a/hugolib/page__per_output.go b/hugolib/page__per_output.go
index 6460b120b..59299b709 100644
--- a/hugolib/page__per_output.go
+++ b/hugolib/page__per_output.go
@@ -201,7 +201,7 @@ func newPageContentOutput(p *pageState, po *pageOutput) (*pageContentOutput, err
})
cp.initPlain = cp.initMain.Branch(func() (any, error) {
- cp.plain = helpers.StripHTML(string(cp.content))
+ cp.plain = tpl.StripHTML(string(cp.content))
cp.plainWords = strings.Fields(cp.plain)
cp.setWordCounts(p.m.isCJKLanguage)
diff --git a/hugolib/page_test.go b/hugolib/page_test.go
index b93173131..e5f8840a6 100644
--- a/hugolib/page_test.go
+++ b/hugolib/page_test.go
@@ -26,6 +26,7 @@ import (
"github.com/gohugoio/hugo/htesting"
"github.com/gohugoio/hugo/markup/asciidocext"
"github.com/gohugoio/hugo/markup/rst"
+ "github.com/gohugoio/hugo/tpl"
"github.com/gohugoio/hugo/config"
@@ -40,7 +41,6 @@ import (
qt "github.com/frankban/quicktest"
"github.com/gohugoio/hugo/deps"
- "github.com/gohugoio/hugo/helpers"
)
const (
@@ -351,7 +351,7 @@ func normalizeExpected(ext, str string) string {
default:
return str
case "html":
- return strings.Trim(helpers.StripHTML(str), " ")
+ return strings.Trim(tpl.StripHTML(str), " ")
case "ad":
paragraphs := strings.Split(str, "</p>")
expected := ""
@@ -1736,6 +1736,7 @@ Len Summary: {{ len .Summary }}
Len Content: {{ len .Content }}
SUMMARY:{{ .Summary }}:{{ len .Summary }}:END
+
`}
b := newTestSitesBuilder(t)