Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-11-26 16:20:31 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-11-26 19:04:39 +0300
commit01766439246add22a6e6d0c12f932610be55cd8a (patch)
treeaa748a3c1cd6c5ab52caee1b29bd12866ce9f05a
parentda53523599b43261520a22d77019b390aaa072e7 (diff)
hugolib: Fix cascade in server mode
Fixes #6538
-rw-r--r--hugolib/cascade_test.go44
-rw-r--r--hugolib/pages_map.go14
2 files changed, 57 insertions, 1 deletions
diff --git a/hugolib/cascade_test.go b/hugolib/cascade_test.go
index d6701cf28..6b176ad64 100644
--- a/hugolib/cascade_test.go
+++ b/hugolib/cascade_test.go
@@ -100,6 +100,50 @@ func TestCascade(t *testing.T) {
}
+func TestCascadeEdit(t *testing.T) {
+ p1Content := `---
+title: P1
+---
+`
+ b := newTestSitesBuilder(t).Running()
+ b.WithTemplatesAdded("_default/single.html", `Banner: {{ .Params.banner }}|Layout: {{ .Layout }}|Type: {{ .Type }}|Content: {{ .Content }}`)
+ b.WithContent("post/_index.md", `
+---
+title: Post
+cascade:
+ banner: post.jpg
+ layout: postlayout
+ type: posttype
+---
+`)
+
+ b.WithContent("post/dir/_index.md", `
+---
+title: Dir
+---
+`, "post/dir/p1.md", p1Content)
+ b.Build(BuildCfg{})
+
+ assert := func() {
+ b.Helper()
+ b.AssertFileContent("public/post/dir/p1/index.html",
+ `Banner: post.jpg|`,
+ `Layout: postlayout`,
+ `Type: posttype`,
+ )
+ }
+
+ assert()
+
+ b.EditFiles("content/post/dir/p1.md", p1Content+"\ncontent edit")
+ b.Build(BuildCfg{})
+
+ assert()
+ b.AssertFileContent("public/post/dir/p1/index.html",
+ `content edit`,
+ )
+}
+
func newCascadeTestBuilder(t testing.TB, langs []string) *sitesBuilder {
p := func(m map[string]interface{}) string {
var yamlStr string
diff --git a/hugolib/pages_map.go b/hugolib/pages_map.go
index bc8589142..7c53aaf3f 100644
--- a/hugolib/pages_map.go
+++ b/hugolib/pages_map.go
@@ -148,7 +148,19 @@ func (m *pagesMap) addBucketFor(key string, p *pageState, meta map[string]interf
disabled := !m.s.isEnabled(p.Kind())
- bucket := &pagesMapBucket{owner: p, view: isView, meta: meta, disabled: disabled}
+ var cascade map[string]interface{}
+ if p.bucket != nil {
+ cascade = p.bucket.cascade
+ }
+
+ bucket := &pagesMapBucket{
+ owner: p,
+ view: isView,
+ cascade: cascade,
+ meta: meta,
+ disabled: disabled,
+ }
+
p.bucket = bucket
m.r.Insert(key, bucket)