summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-03-15 16:21:25 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-03-15 16:54:18 +0100
commit68d92ef9ddbb63340d71af0cb30e6fb7c4912c65 (patch)
treeb84138bfc016ba854b5020d1560ca2ed165ce233
parentb40f3c7df6bc89efaaadddec7d2cc291557b2ee9 (diff)
Fix translationKey handling for term pages
Fixes #12261
-rw-r--r--hugolib/content_map_page.go14
-rw-r--r--hugolib/page_test.go45
2 files changed, 52 insertions, 7 deletions
diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go
index 906fced77..64a15a59a 100644
--- a/hugolib/content_map_page.go
+++ b/hugolib/content_map_page.go
@@ -1500,13 +1500,6 @@ func (sa *sitePagesAssembler) assembleTermsAndTranslations() error {
return false, nil
}
- // This is a little out of place, but is conveniently put here.
- // Check if translationKey is set by user.
- // This is to support the manual way of setting the translationKey in front matter.
- if ps.m.pageConfig.TranslationKey != "" {
- sa.s.h.translationKeyPages.Append(ps.m.pageConfig.TranslationKey, ps)
- }
-
if sa.pageMap.cfg.taxonomyTermDisabled {
return false, nil
}
@@ -1587,6 +1580,13 @@ func (sa *sitePagesAssembler) assembleResources() error {
Handle: func(s string, n contentNodeI, match doctree.DimensionFlag) (bool, error) {
ps := n.(*pageState)
+ // This is a little out of place, but is conveniently put here.
+ // Check if translationKey is set by user.
+ // This is to support the manual way of setting the translationKey in front matter.
+ if ps.m.pageConfig.TranslationKey != "" {
+ sa.s.h.translationKeyPages.Append(ps.m.pageConfig.TranslationKey, ps)
+ }
+
// Prepare resources for this page.
ps.shiftToOutputFormat(true, 0)
targetPaths := ps.targetPaths()
diff --git a/hugolib/page_test.go b/hugolib/page_test.go
index b0ab7f09c..f22a4d07c 100644
--- a/hugolib/page_test.go
+++ b/hugolib/page_test.go
@@ -1350,6 +1350,51 @@ AllTranslations: {{ range .AllTranslations }}{{ .Language.Lang }}|{{ end }}|
)
}
+func TestTranslationKeyTermPages(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+disableKinds = ['home','rss','section','sitemap','taxonomy']
+defaultContentLanguage = 'en'
+defaultContentLanguageInSubdir = true
+[languages.en]
+weight = 1
+[languages.pt]
+weight = 2
+[taxonomies]
+category = 'categories'
+-- layouts/_default/list.html --
+{{ .IsTranslated }}|{{ range .Translations }}{{ .RelPermalink }}|{{ end }}
+-- layouts/_default/single.html --
+{{ .Title }}|
+-- content/p1.en.md --
+---
+title: p1 (en)
+categories: [music]
+---
+-- content/p1.pt.md --
+---
+title: p1 (pt)
+categories: [música]
+---
+-- content/categories/music/_index.en.md --
+---
+title: music
+translationKey: foo
+---
+-- content/categories/música/_index.pt.md --
+---
+title: música
+translationKey: foo
+---
+`
+
+ b := Test(t, files)
+ b.AssertFileContent("public/en/categories/music/index.html", "true|/pt/categories/m%C3%BAsica/|")
+ b.AssertFileContent("public/pt/categories/música/index.html", "true|/en/categories/music/|")
+}
+
// Issue #11540.
func TestTranslationKeyResourceSharing(t *testing.T) {
files := `