aboutsummaryrefslogtreecommitdiffhomepage
path: root/deps
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2018-11-26 10:11:22 +0100
committerBjørn Erik Pedersen <[email protected]>2018-12-06 14:37:25 +0100
commit831d23cb4d1ca99cdc15ed31c8ee1f981497be8f (patch)
tree8fe47b1b1b9233448297f8015ce61bbb7da13fc7 /deps
parent514e18dc27ce37a0e9a231741d616cf29d50d610 (diff)
downloadhugo-831d23cb4d1ca99cdc15ed31c8ee1f981497be8f.tar.gz
hugo-831d23cb4d1ca99cdc15ed31c8ee1f981497be8f.zip
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 'deps')
-rw-r--r--deps/deps.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/deps/deps.go b/deps/deps.go
index de6d8b52a..46f4f7730 100644
--- a/deps/deps.go
+++ b/deps/deps.go
@@ -7,6 +7,7 @@ import (
"github.com/pkg/errors"
"github.com/gohugoio/hugo/cache/filecache"
+ "github.com/gohugoio/hugo/common/hugo"
"github.com/gohugoio/hugo/common/loggers"
"github.com/gohugoio/hugo/config"
"github.com/gohugoio/hugo/helpers"
@@ -62,8 +63,12 @@ type Deps struct {
// The translation func to use
Translate func(translationID string, args ...interface{}) string `json:"-"`
+ // The language in use. TODO(bep) consolidate with site
Language *langs.Language
+ // The site building.
+ Site hugo.Site
+
// All the output formats available for the current site.
OutputFormatsConfig output.Formats
@@ -230,6 +235,7 @@ func New(cfg DepsCfg) (*Deps, error) {
ResourceSpec: resourceSpec,
Cfg: cfg.Language,
Language: cfg.Language,
+ Site: cfg.Site,
FileCaches: fileCaches,
BuildStartListeners: &Listeners{},
Timeout: time.Duration(timeoutms) * time.Millisecond,
@@ -245,7 +251,7 @@ func New(cfg DepsCfg) (*Deps, error) {
// ForLanguage creates a copy of the Deps with the language dependent
// parts switched out.
-func (d Deps) ForLanguage(cfg DepsCfg) (*Deps, error) {
+func (d Deps) ForLanguage(cfg DepsCfg, onCreated func(d *Deps) error) (*Deps, error) {
l := cfg.Language
var err error
@@ -259,6 +265,8 @@ func (d Deps) ForLanguage(cfg DepsCfg) (*Deps, error) {
return nil, err
}
+ d.Site = cfg.Site
+
// The resource cache is global so reuse.
// TODO(bep) clean up these inits.
resourceCache := d.ResourceSpec.ResourceCache
@@ -271,6 +279,12 @@ func (d Deps) ForLanguage(cfg DepsCfg) (*Deps, error) {
d.Cfg = l
d.Language = l
+ if onCreated != nil {
+ if err = onCreated(&d); err != nil {
+ return nil, err
+ }
+ }
+
if err := d.translationProvider.Clone(&d); err != nil {
return nil, err
}
@@ -299,6 +313,9 @@ type DepsCfg struct {
// The language to use.
Language *langs.Language
+ // The Site in use
+ Site hugo.Site
+
// The configuration to use.
Cfg config.Provider