]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
tpl/tplimpl: Resolve render hook destinations with leading ./
authorJoe Mooring <joe.mooring@veriphor.com>
Fri, 17 May 2024 22:41:18 +0000 (15:41 -0700)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 21 May 2024 07:38:25 +0000 (09:38 +0200)
Closes #12514

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

index 31437cdd43073d45690a5cafdc6092bb23a72cf9..89514cb83a0c41b15eab38601f31e8e75b050768 100644 (file)
@@ -1,7 +1,8 @@
 {{- $u := urls.Parse .Destination -}}
 {{- $src := $u.String -}}
 {{- if not $u.IsAbs -}}
-  {{- with or (.PageInner.Resources.Get $u.Path) (resources.Get $u.Path) -}}
+  {{- $path := strings.TrimPrefix "./" $u.Path }}
+  {{- with or (.PageInner.Resources.Get $path) (resources.Get $path) -}}
     {{- $src = .RelPermalink -}}
     {{- with $u.RawQuery -}}
       {{- $src = printf "%s?%s" $src . -}}
index 30e4d2660c67fb4bde170c8f1cacc16976823d96..daf3f11e1a7be9a6242e62389b9a66fae024ccdf 100644 (file)
@@ -3,10 +3,11 @@
 {{- if strings.HasPrefix $u.String "#" }}
   {{- $href = printf "%s#%s" .PageInner.RelPermalink $u.Fragment }}
 {{- else if not $u.IsAbs -}}
+  {{- $path := strings.TrimPrefix "./" $u.Path }}
   {{- with or
-    ($.PageInner.GetPage $u.Path)
-    ($.PageInner.Resources.Get $u.Path)
-    (resources.Get $u.Path)
+    ($.PageInner.GetPage $path)
+    ($.PageInner.Resources.Get $path)
+    (resources.Get $path)
   -}}
     {{- $href = .RelPermalink -}}
     {{- with $u.RawQuery -}}
index f6cb5bf6b2f029b0f8da752e170cd2b9560f702f..b91358227daf838a450a73c8c728bab0303c8ca3 100644 (file)
@@ -51,7 +51,8 @@ title: s1/p1
 title: s1/p2
 ---
 [500](a.txt) // global resource
-[600](b.txt) // page resource
+[510](b.txt) // page resource
+[520](./b.txt) // page resource
 -- content/s1/p2/b.txt --
 irrelevant
 -- content/s1/p3.md --
@@ -125,12 +126,14 @@ title: s1/p3
 
        b.AssertFileContent("public/s1/p2/index.html",
                `<a href="/a.txt">500</a>`,
-               `<a href="/s1/p2/b.txt">600</a>`,
+               `<a href="/s1/p2/b.txt">510</a>`,
+               `<a href="/s1/p2/b.txt">520</a>`,
        )
 }
 
 // Issue 12203
 // Issue 12468
+// Issue 12514
 func TestEmbeddedImageRenderHook(t *testing.T) {
        t.Parallel()
 
@@ -145,7 +148,9 @@ block = false
 [markup.goldmark.renderHooks.image]
 enableDefault = true
 -- content/p1/index.md --
-![alt](pixel.png?a=b&c=d#fragment)
+![alt1](./pixel.png)
+
+![alt2](pixel.png?a=b&c=d#fragment)
 {.foo #bar}
 -- content/p1/pixel.png --
 iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
@@ -154,10 +159,16 @@ iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAA
 `
 
        b := hugolib.Test(t, files)
-       b.AssertFileContent("public/p1/index.html", `<img alt="alt" src="/dir/p1/pixel.png?a=b&c=d#fragment">`)
+       b.AssertFileContent("public/p1/index.html",
+               `<img alt="alt1" src="/dir/p1/pixel.png">`,
+               `<img alt="alt2" 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/p1/index.html", `<img alt="alt" class="foo" id="bar" src="/dir/p1/pixel.png?a=b&c=d#fragment">`)
+       b.AssertFileContent("public/p1/index.html",
+               `<img alt="alt1" src="/dir/p1/pixel.png">`,
+               `<img alt="alt2" class="foo" id="bar" src="/dir/p1/pixel.png?a=b&c=d#fragment">`,
+       )
 }