diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-05-25 10:56:14 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-05-25 17:55:23 +0200 |
commit | 3854a6fa6c323d1c09aa71a0626c9eef62709294 (patch) | |
tree | ea3727c14f73fb73aef89d43795dd6d6f75f1220 /tpl/transform | |
parent | cd0112a05a9ddb7043c9808284f93d8099c48473 (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 'tpl/transform')
-rw-r--r-- | tpl/transform/transform.go | 3 | ||||
-rw-r--r-- | tpl/transform/transform_test.go | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/tpl/transform/transform.go b/tpl/transform/transform.go index 7c0914378..69ab98a9a 100644 --- a/tpl/transform/transform.go +++ b/tpl/transform/transform.go @@ -22,6 +22,7 @@ import ( "github.com/gohugoio/hugo/cache/namedmemcache" "github.com/gohugoio/hugo/markup/converter/hooks" "github.com/gohugoio/hugo/markup/highlight" + "github.com/gohugoio/hugo/tpl" "github.com/gohugoio/hugo/deps" "github.com/gohugoio/hugo/helpers" @@ -141,7 +142,7 @@ func (ns *Namespace) Plainify(s any) (string, error) { return "", err } - return helpers.StripHTML(ss), nil + return tpl.StripHTML(ss), nil } // For internal use. diff --git a/tpl/transform/transform_test.go b/tpl/transform/transform_test.go index ab2fd3b9e..edef4e1bd 100644 --- a/tpl/transform/transform_test.go +++ b/tpl/transform/transform_test.go @@ -237,6 +237,7 @@ func TestPlainify(t *testing.T) { expect any }{ {"<em>Note:</em> blah <b>blah</b>", "Note: blah blah"}, + {"<div data-action='click->my-controller#doThing'>qwe</div>", "qwe"}, // errors {tstNoStringer{}, false}, } { |