mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Fix it so not all bundled resources are removed when one translation is drafted
Fixes #12105
This commit is contained in:
parent
f5fd7ec8cc
commit
db3bb623d4
3 changed files with 48 additions and 8 deletions
|
@ -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{}
|
||||
|
@ -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:
|
||||
|
@ -1694,6 +1712,9 @@ func (sa *sitePagesAssembler) removeShouldNotBuild() error {
|
|||
return err
|
||||
}
|
||||
|
||||
if len(keys) == 0 {
|
||||
return nil
|
||||
}
|
||||
sa.pageMap.DeletePageAndResourcesBelow(keys...)
|
||||
|
||||
return nil
|
||||
|
|
|
@ -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.|")
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue