Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Always strip taxonomy name prefix from term name
If the taxonomy name differs when normalized versus unnormalized (e.g.,
because it has a space in it which is converted to a dash when
normalized), the plural tree key will not match as a prefix to the
term's base path (which is normalized). Use the non-normalized taxonomy
name instead to ensure that the prefix always matches and is trimmed.

Fixes: #13422
Signed-off-by: Jason Cox <me@jasoncarloscox.com>
  • Loading branch information
jasonccox committed Feb 20, 2025
commit e4f26ffb66d7dd3cd53ca58e8c2a534a45d48844
2 changes: 1 addition & 1 deletion hugolib/page__new.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ func (h *HugoSites) doNewPage(m *pageMeta) (*pageState, *paths.Path, error) {
}
m.singular = tc.singular
if m.pageConfig.Kind == kinds.KindTerm {
m.term = paths.TrimLeading(strings.TrimPrefix(m.pathInfo.Unnormalized().Base(), tc.pluralTreeKey))
m.term = paths.TrimLeading(strings.TrimPrefix(m.pathInfo.Unnormalized().Base(), "/"+tc.plural))
}
}

Expand Down
22 changes: 22 additions & 0 deletions hugolib/page_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1968,3 +1968,25 @@ Title: {{ .Title }}
"deprecated: path in front matter was deprecated",
)
}

// See #13422
func TestPageTermWithSpaceInTaxonomyName(t *testing.T) {
t.Parallel()
files := `
-- hugo.toml --
[taxonomies]
"book author" = "book authors"
-- content/p1.md --
---
title: "p1"
kind: "page"
lang: "en"
path: "mypath"
book authors: ["Author One"]
---
-- layouts/_default/term.html --
{{ .Data.Term }}
`
b := Test(t, files, TestOptWarn())
b.AssertFileContent("public/book-authors/author-one/index.html", "Author One")
}