From 5cb52c23150032b3fdb211a095745c512369b463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 9 Jul 2021 11:52:03 +0200 Subject: 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 --- hugolib/site.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'hugolib/site.go') 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, -- cgit v1.2.3