Prevent minifier from removing quoutes around post-processed attributes
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 19 Aug 2021 09:30:50 +0000 (11:30 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 22 Aug 2021 10:47:47 +0000 (12:47 +0200)
Fixes #8884

hugolib/resource_chain_test.go
resources/postpub/postpub.go

index 834fe43570fefa570e17035ffc5a382d36256272..d40d4c02edddb436b2343d168ee5f3b633677350 100644 (file)
@@ -457,8 +457,10 @@ func TestResourceChainPostProcess(t *testing.T) {
 
        b := newTestSitesBuilder(t)
        b.WithConfigFile("toml", `[minify]
+  minifyOutput = true
   [minify.tdewolff]
     [minify.tdewolff.html]
+      keepQuotes = false
       keepWhitespace = false`)
        b.WithContent("page1.md", "---\ntitle: Page1\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 }}
 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)+`
 
 
@@ -484,6 +489,8 @@ End.`)
                `Start.
 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
+<a href=hugo.rocks>foo</a>
+<a href="/hello.min.a2d1cb24f24b322a7dad520414c523e9.html" integrity="md5-otHLJPJLMip9rVIEFMUj6Q==">Hello</a>
 End.`)
 
        b.AssertFileContent("public/page1/index.html", `HELLO: /hello.min.a2d1cb24f24b322a7dad520414c523e9.html`)
index 85b4221fdfbb697dedd68ac9a8d6b9f0723f847d..c11dda5773a6905eb8ee8e358e4dec0b1cc6a7a5 100644 (file)
@@ -39,7 +39,11 @@ type PostPublishedResource interface {
 
 const (
        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 {