mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
tpl/tplimpl: Resolve render hook destinations with leading ./
Closes #12514
This commit is contained in:
parent
6b006616e5
commit
b893a09aa6
3 changed files with 22 additions and 9 deletions
|
@ -1,7 +1,8 @@
|
||||||
{{- $u := urls.Parse .Destination -}}
|
{{- $u := urls.Parse .Destination -}}
|
||||||
{{- $src := $u.String -}}
|
{{- $src := $u.String -}}
|
||||||
{{- if not $u.IsAbs -}}
|
{{- 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 -}}
|
{{- $src = .RelPermalink -}}
|
||||||
{{- with $u.RawQuery -}}
|
{{- with $u.RawQuery -}}
|
||||||
{{- $src = printf "%s?%s" $src . -}}
|
{{- $src = printf "%s?%s" $src . -}}
|
||||||
|
|
|
@ -3,10 +3,11 @@
|
||||||
{{- if strings.HasPrefix $u.String "#" }}
|
{{- if strings.HasPrefix $u.String "#" }}
|
||||||
{{- $href = printf "%s#%s" .PageInner.RelPermalink $u.Fragment }}
|
{{- $href = printf "%s#%s" .PageInner.RelPermalink $u.Fragment }}
|
||||||
{{- else if not $u.IsAbs -}}
|
{{- else if not $u.IsAbs -}}
|
||||||
|
{{- $path := strings.TrimPrefix "./" $u.Path }}
|
||||||
{{- with or
|
{{- with or
|
||||||
($.PageInner.GetPage $u.Path)
|
($.PageInner.GetPage $path)
|
||||||
($.PageInner.Resources.Get $u.Path)
|
($.PageInner.Resources.Get $path)
|
||||||
(resources.Get $u.Path)
|
(resources.Get $path)
|
||||||
-}}
|
-}}
|
||||||
{{- $href = .RelPermalink -}}
|
{{- $href = .RelPermalink -}}
|
||||||
{{- with $u.RawQuery -}}
|
{{- with $u.RawQuery -}}
|
||||||
|
|
|
@ -51,7 +51,8 @@ title: s1/p1
|
||||||
title: s1/p2
|
title: s1/p2
|
||||||
---
|
---
|
||||||
[500](a.txt) // global resource
|
[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 --
|
-- content/s1/p2/b.txt --
|
||||||
irrelevant
|
irrelevant
|
||||||
-- content/s1/p3.md --
|
-- content/s1/p3.md --
|
||||||
|
@ -125,12 +126,14 @@ title: s1/p3
|
||||||
|
|
||||||
b.AssertFileContent("public/s1/p2/index.html",
|
b.AssertFileContent("public/s1/p2/index.html",
|
||||||
`<a href="/a.txt">500</a>`,
|
`<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 12203
|
||||||
// Issue 12468
|
// Issue 12468
|
||||||
|
// Issue 12514
|
||||||
func TestEmbeddedImageRenderHook(t *testing.T) {
|
func TestEmbeddedImageRenderHook(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
@ -145,7 +148,9 @@ block = false
|
||||||
[markup.goldmark.renderHooks.image]
|
[markup.goldmark.renderHooks.image]
|
||||||
enableDefault = true
|
enableDefault = true
|
||||||
-- content/p1/index.md --
|
-- 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}
|
{.foo #bar}
|
||||||
-- content/p1/pixel.png --
|
-- content/p1/pixel.png --
|
||||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
|
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
|
||||||
|
@ -154,10 +159,16 @@ iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAA
|
||||||
`
|
`
|
||||||
|
|
||||||
b := hugolib.Test(t, files)
|
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)
|
files = strings.Replace(files, "block = false", "block = true", -1)
|
||||||
|
|
||||||
b = hugolib.Test(t, files)
|
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">`,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue