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 {
|
if !ok {
|
||||||
panic(fmt.Sprintf("unknown type %T", new))
|
panic(fmt.Sprintf("unknown type %T", new))
|
||||||
}
|
}
|
||||||
|
if newp != old {
|
||||||
|
resource.MarkStale(old)
|
||||||
|
}
|
||||||
if vv.s.languagei == newp.s.languagei {
|
if vv.s.languagei == newp.s.languagei {
|
||||||
return new
|
return new
|
||||||
}
|
}
|
||||||
|
@ -836,7 +839,11 @@ func (s *contentNodeShifter) Insert(old, new contentNodeI) contentNodeI {
|
||||||
if !ok {
|
if !ok {
|
||||||
panic(fmt.Sprintf("unknown type %T", new))
|
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
|
vv[newp.s.languagei] = new
|
||||||
return vv
|
return vv
|
||||||
case *resourceSource:
|
case *resourceSource:
|
||||||
|
@ -856,7 +863,10 @@ func (s *contentNodeShifter) Insert(old, new contentNodeI) contentNodeI {
|
||||||
if !ok {
|
if !ok {
|
||||||
panic(fmt.Sprintf("unknown type %T", new))
|
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
|
vv[newp.LangIndex()] = newp
|
||||||
return vv
|
return vv
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -1585,3 +1585,39 @@ title: p1
|
||||||
b.AddFiles("content/p2.md", "---\ntitle: p2\n---").Build()
|
b.AddFiles("content/p2.md", "---\ntitle: p2\n---").Build()
|
||||||
b.AssertFileContent("public/index.html", "p1|p2|") // this test passes, which doesn't match reality
|
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 currently rebuild all the language versions of the same content file.
|
||||||
// We could probably optimize that case, but it's not trivial.
|
// 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!!")
|
b.AssertFileContent("public"+p.RelPermalink()+"index.html", "Edited!!")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue