summaryrefslogtreecommitdiffstats
path: root/hugolib/site.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/site.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/site.go')
-rw-r--r--hugolib/site.go22
1 files changed, 19 insertions, 3 deletions
diff --git a/hugolib/site.go b/hugolib/site.go
index 2e7e1d7f9..fe7305b91 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -103,7 +103,7 @@ import (
type Site struct {
// The owning container. When multiple languages, there will be multiple
- // sites.
+ // sites .
h *HugoSites
*PageCollections
@@ -113,7 +113,8 @@ type Site struct {
Sections Taxonomy
Info *SiteInfo
- language *langs.Language
+ language *langs.Language
+ siteBucket *pagesMapBucket
siteCfg siteConfigHolder
@@ -388,6 +389,7 @@ func (s *Site) reset() *Site {
frontmatterHandler: s.frontmatterHandler,
mediaTypesConfig: s.mediaTypesConfig,
language: s.language,
+ siteBucket: s.siteBucket,
h: s.h,
publisher: s.publisher,
siteConfigConfig: s.siteConfigConfig,
@@ -539,9 +541,23 @@ But this also means that your site configuration may not do what you expect. If
enableEmoji: cfg.Language.Cfg.GetBool("enableEmoji"),
}
- s := &Site{
+ var siteBucket *pagesMapBucket
+ if cfg.Language.IsSet("cascade") {
+ var err error
+ cascade, err := page.DecodeCascade(cfg.Language.Get("cascade"))
+ if err != nil {
+ return nil, errors.Errorf("failed to decode cascade config: %s", err)
+ }
+ siteBucket = &pagesMapBucket{
+ cascade: cascade,
+ }
+
+ }
+
+ s := &Site{
language: cfg.Language,
+ siteBucket: siteBucket,
disabledKinds: disabledKinds,
outputFormats: outputFormats,