Skip to content

Commit

Permalink
Fix it so not all bundled resources are removed when one translation …
Browse files Browse the repository at this point in the history
…is drafted

Fixes #12105
  • Loading branch information
bep committed Feb 22, 2024
1 parent f5fd7ec commit db3bb62
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 8 deletions.
21 changes: 21 additions & 0 deletions hugolib/content_map_page.go
Expand Up @@ -221,10 +221,22 @@ func (t pageTrees) Shape(d, v int) *pageTrees {
t.treePages = t.treePages.Shape(d, v)
t.treeResources = t.treeResources.Shape(d, v)
t.treeTaxonomyEntries = t.treeTaxonomyEntries.Shape(d, v)
t.createMutableTrees()

return &t
}

func (t *pageTrees) createMutableTrees() {
t.treePagesResources = doctree.WalkableTrees[contentNodeI]{
t.treePages,
t.treeResources,
}

t.resourceTrees = doctree.MutableTrees{
t.treeResources,
}
}

var (
_ resource.Identifier = pageMapQueryPagesInSection{}
_ resource.Identifier = pageMapQueryPagesBelowPath{}
Expand Down Expand Up @@ -676,9 +688,15 @@ func (s *contentNodeShifter) Delete(n contentNodeI, dimension doctree.Dimension)
}
return wasDeleted, isEmpty
case *resourceSource:
if lidx > 0 {
return false, false
}
resource.MarkStale(v)
return true, true
case *pageState:
if lidx > 0 {
return false, false
}
resource.MarkStale(v)
return true, true
default:
Expand Down Expand Up @@ -1694,6 +1712,9 @@ func (sa *sitePagesAssembler) removeShouldNotBuild() error {
return err
}

if len(keys) == 0 {
return nil
}
sa.pageMap.DeletePageAndResourcesBelow(keys...)

return nil
Expand Down
26 changes: 26 additions & 0 deletions hugolib/pagebundler_test.go
Expand Up @@ -893,3 +893,29 @@ Match: {{ range .Resources.Match "f1.en.*" }}{{ .Name }}: {{ .Content }}|{{ end

b.AssertFileContent("public/mybundle/index.html", "GetMatch: f1.txt: F1.|", "Match: f1.txt: F1.|")
}

func TestBundleResourcesWhenLanguageVariantIsDraft(t *testing.T) {
files := `
-- hugo.toml --
baseURL = "https://example.com"
defaultContentLanguage = "en"
[languages]
[languages.en]
weight = 1
[languages.nn]
weight = 2
-- content/mybundle/index.en.md --
-- content/mybundle/index.nn.md --
---
draft: true
---
-- content/mybundle/f1.en.txt --
F1.
-- layouts/_default/single.html --
GetMatch: {{ with .Resources.GetMatch "f1.*" }}{{ .Name }}: {{ .Content }}|{{ end }}$
`

b := Test(t, files)

b.AssertFileContent("public/mybundle/index.html", "GetMatch: f1.txt: F1.|")
}
9 changes: 1 addition & 8 deletions hugolib/site_new.go
Expand Up @@ -165,14 +165,7 @@ func NewHugoSites(cfg deps.DepsCfg) (*HugoSites, error) {
treeTaxonomyEntries: doctree.NewTreeShiftTree[*weightedContentNode](doctree.DimensionLanguage.Index(), len(confm.Languages)),
}

pageTrees.treePagesResources = doctree.WalkableTrees[contentNodeI]{
pageTrees.treePages,
pageTrees.treeResources,
}

pageTrees.resourceTrees = doctree.MutableTrees{
pageTrees.treeResources,
}
pageTrees.createMutableTrees()

for i, confp := range confm.ConfigLangs() {
language := confp.Language()
Expand Down

0 comments on commit db3bb62

Please sign in to comment.