diff --git a/hugolib/pagecollections.go b/hugolib/pagecollections.go index 58c646334b4..3783dadab88 100644 --- a/hugolib/pagecollections.go +++ b/hugolib/pagecollections.go @@ -56,7 +56,7 @@ func (c *pageFinder) getPageRef(context page.Page, ref string) (page.Page, error } func (c *pageFinder) getPage(context page.Page, ref string) (page.Page, error) { - n, err := c.getContentNode(context, false, paths.ToSlashTrimTrailing(ref)) + n, err := c.getContentNode(context, false, ref) if err != nil { return nil, err } @@ -121,6 +121,7 @@ func (c *pageFinder) getPageForRefs(ref ...string) (page.Page, error) { const defaultContentExt = ".md" func (c *pageFinder) getContentNode(context page.Page, isReflink bool, ref string) (contentNodeI, error) { + ref = paths.ToSlashTrimTrailing(ref) inRef := ref if ref == "" { ref = "/" diff --git a/hugolib/site_test.go b/hugolib/site_test.go index 63088ee8829..1de1d688a69 100644 --- a/hugolib/site_test.go +++ b/hugolib/site_test.go @@ -992,6 +992,28 @@ func TestRefLinking(t *testing.T) { // TODO: and then the failure cases. } +func TestRelRefWithTrailingSlash(t *testing.T) { + files := ` +-- hugo.toml -- +-- content/docs/5.3/examples/_index.md -- +--- +title: "Examples" +--- +-- content/_index.md -- +--- +title: "Home" +--- + +Examples: {{< relref "/docs/5.3/examples/" >}} +-- layouts/home.html -- +Content: {{ .Content }}| +` + + b := Test(t, files) + + b.AssertFileContent("public/index.html", "Examples: /docs/5.3/examples/") +} + func checkLinkCase(site *Site, link string, currentPage page.Page, relative bool, outputFormat string, expected string, t *testing.T, i int) { t.Helper() if out, err := site.refLink(link, currentPage, relative, outputFormat); err != nil || out != expected {