]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Fix regression for outputs defined in front matter for term pages
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 19 Mar 2024 12:17:10 +0000 (13:17 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 19 Mar 2024 14:07:48 +0000 (15:07 +0100)
Fixes #12275

hugolib/content_map_page.go
hugolib/hugo_sites_build.go
hugolib/site_output_test.go

index 64a15a59a33338244a2c7ae5065f9028e2cbc622..f4ff2a9ee2828d855d02ee038a6763304e668c3c 100644 (file)
@@ -1678,6 +1678,11 @@ func (sa *sitePagesAssembler) assemblePagesStep2() error {
        if err := sa.applyAggregatesToTaxonomiesAndTerms(); err != nil {
                return err
        }
+
+       return nil
+}
+
+func (sa *sitePagesAssembler) assemblePagesStepFinal() error {
        if err := sa.assembleResources(); err != nil {
                return err
        }
index c33f06bd5ae1b007de35ae99143fa7fd517b911f..cc8847f55912cc954e8f0d3625fe71d9a441e072 100644 (file)
@@ -282,11 +282,6 @@ func (h *HugoSites) assemble(ctx context.Context, l logg.LevelLogger, bcfg *Buil
                        return err
                }
        }
-       h.renderFormats = output.Formats{}
-       for _, s := range h.Sites {
-               s.s.initRenderFormats()
-               h.renderFormats = append(h.renderFormats, s.renderFormats...)
-       }
 
        for _, s := range assemblers {
                if err := s.assemblePagesStep2(); err != nil {
@@ -296,9 +291,16 @@ func (h *HugoSites) assemble(ctx context.Context, l logg.LevelLogger, bcfg *Buil
 
        h.renderFormats = output.Formats{}
        for _, s := range h.Sites {
+               s.s.initRenderFormats()
                h.renderFormats = append(h.renderFormats, s.renderFormats...)
        }
 
+       for _, s := range assemblers {
+               if err := s.assemblePagesStepFinal(); err != nil {
+                       return err
+               }
+       }
+
        return nil
 }
 
index a68555574c09c2e326f27eee6a599b53ab6ca338..3d95709c50ea5b975dee3c4d74061549d1c33c84 100644 (file)
@@ -646,3 +646,40 @@ WordCount: {{ .WordCount }}
        b.AssertFileContent("public/outputs-empty/index.html", "HTML:", "Word1. Word2.")
        b.AssertFileContent("public/outputs-string/index.html", "O1:", "Word1. Word2.")
 }
+
+func TestOuputFormatFrontMatterTermIssue12275(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- hugo.toml --
+disableKinds = ['home','page','rss','section','sitemap','taxonomy']
+-- content/p1.md --
+---
+title: p1
+tags:
+  - tag-a
+  - tag-b
+---
+-- content/tags/tag-a/_index.md --
+---
+title: tag-a
+outputs:
+  - html
+  - json
+---
+-- content/tags/tag-b/_index.md --
+---
+title: tag-b
+---
+-- layouts/_default/term.html --
+{{ .Title }}
+-- layouts/_default/term.json --
+{{ jsonify (dict "title" .Title) }}
+`
+
+       b := Test(t, files)
+
+       b.AssertFileContent("public/tags/tag-a/index.html", "tag-a")
+       b.AssertFileContent("public/tags/tag-b/index.html", "tag-b")
+       b.AssertFileContent("public/tags/tag-a/index.json", `{"title":"tag-a"}`) // failing test
+}