Prevent minifier from removing quoutes around post-processed attributes

Fixes #8884
This commit is contained in:
Bjørn Erik Pedersen 2021-08-19 11:30:50 +02:00
parent ffa2fe6117
commit bc0743ed8e
2 changed files with 12 additions and 1 deletions

View file

@ -457,8 +457,10 @@ func TestResourceChainPostProcess(t *testing.T) {
b := newTestSitesBuilder(t) b := newTestSitesBuilder(t)
b.WithConfigFile("toml", `[minify] b.WithConfigFile("toml", `[minify]
minifyOutput = true
[minify.tdewolff] [minify.tdewolff]
[minify.tdewolff.html] [minify.tdewolff.html]
keepQuotes = false
keepWhitespace = false`) keepWhitespace = false`)
b.WithContent("page1.md", "---\ntitle: Page1\n---") b.WithContent("page1.md", "---\ntitle: Page1\n---")
b.WithContent("page2.md", "---\ntitle: Page2\n---") b.WithContent("page2.md", "---\ntitle: Page2\n---")
@ -473,6 +475,9 @@ HELLO: {{ $hello.RelPermalink }}
HELLO: {{ $hello.RelPermalink }}|Integrity: {{ $hello.Data.Integrity }}|MediaType: {{ $hello.MediaType.Type }} HELLO: {{ $hello.RelPermalink }}|Integrity: {{ $hello.Data.Integrity }}|MediaType: {{ $hello.MediaType.Type }}
HELLO2: Name: {{ $hello.Name }}|Content: {{ $hello.Content }}|Title: {{ $hello.Title }}|ResourceType: {{ $hello.ResourceType }} HELLO2: Name: {{ $hello.Name }}|Content: {{ $hello.Content }}|Title: {{ $hello.Title }}|ResourceType: {{ $hello.ResourceType }}
// Issue #8884
<a href="hugo.rocks">foo</a>
<a href="{{ $hello.RelPermalink }}" integrity="{{ $hello.Data.Integrity}}">Hello</a>
`+strings.Repeat("a b", rnd.Intn(10)+1)+` `+strings.Repeat("a b", rnd.Intn(10)+1)+`
@ -484,6 +489,8 @@ End.`)
`Start. `Start.
HELLO: /hello.min.a2d1cb24f24b322a7dad520414c523e9.html|Integrity: md5-otHLJPJLMip9rVIEFMUj6Q==|MediaType: text/html HELLO: /hello.min.a2d1cb24f24b322a7dad520414c523e9.html|Integrity: md5-otHLJPJLMip9rVIEFMUj6Q==|MediaType: text/html
HELLO2: Name: hello.html|Content: <h1>Hello World!</h1>|Title: hello.html|ResourceType: text HELLO2: Name: hello.html|Content: <h1>Hello World!</h1>|Title: hello.html|ResourceType: text
<a href=hugo.rocks>foo</a>
<a href="/hello.min.a2d1cb24f24b322a7dad520414c523e9.html" integrity="md5-otHLJPJLMip9rVIEFMUj6Q==">Hello</a>
End.`) End.`)
b.AssertFileContent("public/page1/index.html", `HELLO: /hello.min.a2d1cb24f24b322a7dad520414c523e9.html`) b.AssertFileContent("public/page1/index.html", `HELLO: /hello.min.a2d1cb24f24b322a7dad520414c523e9.html`)

View file

@ -39,7 +39,11 @@ type PostPublishedResource interface {
const ( const (
PostProcessPrefix = "__h_pp_l1" PostProcessPrefix = "__h_pp_l1"
PostProcessSuffix = "__e"
// The suffix has an '=' in it to prevent the minifier to remove any enclosing
// quoutes around the attribute values.
// See issue #8884.
PostProcessSuffix = "__e="
) )
func NewPostPublishResource(id int, r resource.Resource) PostPublishedResource { func NewPostPublishResource(id int, r resource.Resource) PostPublishedResource {