Fix relref regression with trailing slash - hugo - [fork] hugo port for 9front
(HTM) git clone git@git.drkhsh.at/hugo.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
(DIR) commit fd0185a84a677c836fbe4defec040b77e6deea49
(DIR) parent 6da1d8f370624b1a3640076b1e60380b0d8b2f92
(HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Wed, 21 Feb 2024 15:42:00 +0100
Fix relref regression with trailing slash
Fixes #12096
Diffstat:
M hugolib/pagecollections.go | 3 ++-
M hugolib/site_test.go | 22 ++++++++++++++++++++++
2 files changed, 24 insertions(+), 1 deletion(-)
---
(DIR) diff --git 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 = "/"
(DIR) diff --git 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 {