summaryrefslogtreecommitdiffstats
path: root/hugolib/hugo_sites.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-11-26 10:11:22 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-12-06 14:37:25 +0100
commit831d23cb4d1ca99cdc15ed31c8ee1f981497be8f (patch)
tree8fe47b1b1b9233448297f8015ce61bbb7da13fc7 /hugolib/hugo_sites.go
parent514e18dc27ce37a0e9a231741d616cf29d50d610 (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.go48
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