diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-11-26 10:11:22 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-12-06 14:37:25 +0100 |
commit | 831d23cb4d1ca99cdc15ed31c8ee1f981497be8f (patch) | |
tree | 8fe47b1b1b9233448297f8015ce61bbb7da13fc7 /hugolib/hugo_sites.go | |
parent | 514e18dc27ce37a0e9a231741d616cf29d50d610 (diff) |
Add tpl/site and tpl/hugo
This means that the current `.Site` and ´.Hugo` is available as a globals, so you can do `site.IsServer`, `hugo.Version` etc.
Fixes #5470
Fixes #5467
Fixes #5503
Diffstat (limited to 'hugolib/hugo_sites.go')
-rw-r--r-- | hugolib/hugo_sites.go | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go index 9cc091927..043e049d7 100644 --- a/hugolib/hugo_sites.go +++ b/hugolib/hugo_sites.go @@ -21,12 +21,13 @@ import ( "strings" "sync" + "github.com/gohugoio/hugo/publisher" + "github.com/gohugoio/hugo/common/herrors" "github.com/gohugoio/hugo/common/loggers" "github.com/gohugoio/hugo/deps" "github.com/gohugoio/hugo/helpers" "github.com/gohugoio/hugo/langs" - "github.com/gohugoio/hugo/publisher" "github.com/gohugoio/hugo/i18n" "github.com/gohugoio/hugo/tpl" @@ -224,6 +225,27 @@ func applyDeps(cfg deps.DepsCfg, sites ...*Site) error { continue } + onCreated := func(d *deps.Deps) error { + s.Deps = d + + // Set up the main publishing chain. + s.publisher = publisher.NewDestinationPublisher(d.PathSpec.BaseFs.PublishFs, s.outputFormatsConfig, s.mediaTypesConfig, cfg.Cfg.GetBool("minify")) + + if err := s.initializeSiteInfo(); err != nil { + return err + } + + d.Site = &s.Info + + siteConfig, err := loadSiteConfig(s.Language) + if err != nil { + return err + } + s.siteConfig = siteConfig + s.siteRefLinker, err = newSiteRefLinker(s.Language, s) + return err + } + cfg.Language = s.Language cfg.MediaTypes = s.mediaTypesConfig cfg.OutputFormats = s.outputFormatsConfig @@ -238,37 +260,23 @@ func applyDeps(cfg deps.DepsCfg, sites ...*Site) error { } d.OutputFormatsConfig = s.outputFormatsConfig - s.Deps = d + + if err := onCreated(d); err != nil { + return err + } if err = d.LoadResources(); err != nil { return err } } else { - d, err = d.ForLanguage(cfg) + d, err = d.ForLanguage(cfg, onCreated) if err != nil { return err } d.OutputFormatsConfig = s.outputFormatsConfig - s.Deps = d } - // Set up the main publishing chain. - s.publisher = publisher.NewDestinationPublisher(d.PathSpec.BaseFs.PublishFs, s.outputFormatsConfig, s.mediaTypesConfig, cfg.Cfg.GetBool("minify")) - - if err := s.initializeSiteInfo(); err != nil { - return err - } - - siteConfig, err := loadSiteConfig(s.Language) - if err != nil { - return err - } - s.siteConfig = siteConfig - s.siteRefLinker, err = newSiteRefLinker(s.Language, s) - if err != nil { - return err - } } return nil |