diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-09 11:52:03 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-10 11:13:41 +0200 |
commit | 5cb52c23150032b3fdb211a095745c512369b463 (patch) | |
tree | 3b0c83c462e15e4e55acdf674b70c6ef140291c0 /hugolib/site.go | |
parent | 30eea3915b67f72611a3b2f4547146d4c6a96864 (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.go | 22 |
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, |