]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
tpl/tplimpl: Retain query string and fragment in render-image.html
authorJoe Mooring <joe.mooring@veriphor.com>
Tue, 7 May 2024 17:12:19 +0000 (10:12 -0700)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 10 May 2024 20:32:48 +0000 (22:32 +0200)
Closes #12468

tpl/tplimpl/embedded/templates/_default/_markup/render-image.html
tpl/tplimpl/render_hook_integration_test.go

index 8757639100513324157fee98b6b5cae3ccc48472..31437cdd43073d45690a5cafdc6092bb23a72cf9 100644 (file)
@@ -3,6 +3,12 @@
 {{- if not $u.IsAbs -}}
   {{- with or (.PageInner.Resources.Get $u.Path) (resources.Get $u.Path) -}}
     {{- $src = .RelPermalink -}}
+    {{- with $u.RawQuery -}}
+      {{- $src = printf "%s?%s" $src . -}}
+    {{- end -}}
+    {{- with $u.Fragment -}}
+      {{- $src = printf "%s#%s" $src . -}}
+    {{- end -}}
   {{- end -}}
 {{- end -}}
 {{- $attributes := merge .Attributes (dict "alt" .Text "src" $src "title" (.Title | transform.HTMLEscape)) -}}
index 07c24108d5458272df69384d916ffecf33c85c1d..f6cb5bf6b2f029b0f8da752e170cd2b9560f702f 100644 (file)
@@ -130,30 +130,34 @@ title: s1/p3
 }
 
 // Issue 12203
-func TestEmbeddedImageRenderHookMarkdownAttributes(t *testing.T) {
+// Issue 12468
+func TestEmbeddedImageRenderHook(t *testing.T) {
        t.Parallel()
 
        files := `
 -- config.toml --
-disableKinds = ['page','rss','section','sitemap','taxonomy','term']
+baseURL = 'https://example.org/dir/'
+disableKinds = ['home','rss','section','sitemap','taxonomy','term']
 [markup.goldmark.parser]
 wrapStandAloneImageWithinParagraph = false
 [markup.goldmark.parser.attribute]
 block = false
 [markup.goldmark.renderHooks.image]
 enableDefault = true
--- content/_index.md --
-![alt](a.jpg)
+-- content/p1/index.md --
+![alt](pixel.png?a=b&c=d#fragment)
 {.foo #bar}
--- layouts/index.html --
+-- content/p1/pixel.png --
+iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
+-- layouts/_default/single.html --
 {{ .Content }}
 `
 
        b := hugolib.Test(t, files)
-       b.AssertFileContent("public/index.html", `<img alt="alt" src="a.jpg">`)
+       b.AssertFileContent("public/p1/index.html", `<img alt="alt" src="/dir/p1/pixel.png?a=b&c=d#fragment">`)
 
        files = strings.Replace(files, "block = false", "block = true", -1)
 
        b = hugolib.Test(t, files)
-       b.AssertFileContent("public/index.html", `<img alt="alt" class="foo" id="bar" src="a.jpg">`)
+       b.AssertFileContent("public/p1/index.html", `<img alt="alt" class="foo" id="bar" src="/dir/p1/pixel.png?a=b&c=d#fragment">`)
 }