summaryrefslogtreecommitdiffstats
path: root/hugolib/page__meta.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-07-09 11:52:03 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-07-10 11:13:41 +0200
commit5cb52c23150032b3fdb211a095745c512369b463 (patch)
tree3b0c83c462e15e4e55acdf674b70c6ef140291c0 /hugolib/page__meta.go
parent30eea3915b67f72611a3b2f4547146d4c6a96864 (diff)
Add config.cascade
This commit adds support for using the `cascade` keyword in your configuration file(s), e.g. `config.toml`. Note that * Every feature of `cascade` is available, e.g. `_target` to target specific page sets. * Pages, e.g. the home page, can overwrite the cascade defined in config. Fixes #8741
Diffstat (limited to 'hugolib/page__meta.go')
-rw-r--r--hugolib/page__meta.go32
1 files changed, 4 insertions, 28 deletions
diff --git a/hugolib/page__meta.go b/hugolib/page__meta.go
index 759fadd2d..3b31cb299 100644
--- a/hugolib/page__meta.go
+++ b/hugolib/page__meta.go
@@ -340,34 +340,10 @@ func (pm *pageMeta) setMetadata(parentBucket *pagesMapBucket, p *pageState, fron
if p.bucket != nil {
// Check for any cascade define on itself.
if cv, found := frontmatter["cascade"]; found {
- if v, err := maps.ToSliceStringMap(cv); err == nil {
- p.bucket.cascade = make(map[page.PageMatcher]maps.Params)
-
- for _, vv := range v {
- var m page.PageMatcher
- if mv, found := vv["_target"]; found {
- err := page.DecodePageMatcher(mv, &m)
- if err != nil {
- return err
- }
- }
- c, found := p.bucket.cascade[m]
- if found {
- // Merge
- for k, v := range vv {
- if _, found := c[k]; !found {
- c[k] = v
- }
- }
- } else {
- p.bucket.cascade[m] = vv
- }
-
- }
- } else {
- p.bucket.cascade = map[page.PageMatcher]maps.Params{
- {}: maps.ToStringMap(cv),
- }
+ var err error
+ p.bucket.cascade, err = page.DecodeCascade(cv)
+ if err != nil {
+ return err
}
}
}