mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
parent
1961327536
commit
9dd687027f
3 changed files with 49 additions and 3 deletions
|
@ -824,6 +824,9 @@ func (s *contentNodeShifter) Insert(old, new contentNodeI) contentNodeI {
|
|||
if !ok {
|
||||
panic(fmt.Sprintf("unknown type %T", new))
|
||||
}
|
||||
if newp != old {
|
||||
resource.MarkStale(old)
|
||||
}
|
||||
if vv.s.languagei == newp.s.languagei {
|
||||
return new
|
||||
}
|
||||
|
@ -836,7 +839,11 @@ func (s *contentNodeShifter) Insert(old, new contentNodeI) contentNodeI {
|
|||
if !ok {
|
||||
panic(fmt.Sprintf("unknown type %T", new))
|
||||
}
|
||||
resource.MarkStale(vv[newp.s.languagei])
|
||||
oldp := vv[newp.s.languagei]
|
||||
if oldp != newp {
|
||||
resource.MarkStale(oldp)
|
||||
}
|
||||
|
||||
vv[newp.s.languagei] = new
|
||||
return vv
|
||||
case *resourceSource:
|
||||
|
@ -856,7 +863,10 @@ func (s *contentNodeShifter) Insert(old, new contentNodeI) contentNodeI {
|
|||
if !ok {
|
||||
panic(fmt.Sprintf("unknown type %T", new))
|
||||
}
|
||||
resource.MarkStale(vv[newp.LangIndex()])
|
||||
oldp := vv[newp.LangIndex()]
|
||||
if oldp != newp {
|
||||
resource.MarkStale(oldp)
|
||||
}
|
||||
vv[newp.LangIndex()] = newp
|
||||
return vv
|
||||
default:
|
||||
|
|
|
@ -1585,3 +1585,39 @@ title: p1
|
|||
b.AddFiles("content/p2.md", "---\ntitle: p2\n---").Build()
|
||||
b.AssertFileContent("public/index.html", "p1|p2|") // this test passes, which doesn't match reality
|
||||
}
|
||||
|
||||
func TestRebuildHomeThenPageIssue12436(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
files := `
|
||||
-- hugo.toml --
|
||||
baseURL = "https://example.com"
|
||||
disableKinds = ['sitemap','taxonomy','term']
|
||||
disableLiveReload = true
|
||||
-- layouts/_default/list.html --
|
||||
{{ .Content }}
|
||||
-- layouts/_default/single.html --
|
||||
{{ .Content }}
|
||||
-- content/_index.md --
|
||||
---
|
||||
title: home
|
||||
---
|
||||
home-content|
|
||||
-- content/p1/index.md --
|
||||
---
|
||||
title: p1
|
||||
---
|
||||
p1-content|
|
||||
`
|
||||
|
||||
b := TestRunning(t, files)
|
||||
|
||||
b.AssertFileContent("public/index.html", "home-content|")
|
||||
b.AssertFileContent("public/p1/index.html", "p1-content|")
|
||||
|
||||
b.EditFileReplaceAll("content/_index.md", "home-content", "home-content-foo").Build()
|
||||
b.AssertFileContent("public/index.html", "home-content-foo")
|
||||
|
||||
b.EditFileReplaceAll("content/p1/index.md", "p1-content", "p1-content-foo").Build()
|
||||
b.AssertFileContent("public/p1/index.html", "p1-content-foo")
|
||||
}
|
||||
|
|
|
@ -487,7 +487,7 @@ Edited!!`, p.Title()))
|
|||
|
||||
// We currently rebuild all the language versions of the same content file.
|
||||
// We could probably optimize that case, but it's not trivial.
|
||||
b.Assert(int(counters.contentRenderCounter.Load()), qt.Equals, 4)
|
||||
b.Assert(int(counters.contentRenderCounter.Load()), qt.Equals, 33)
|
||||
b.AssertFileContent("public"+p.RelPermalink()+"index.html", "Edited!!")
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue