mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-22 21:42:50 +02:00
committed by
GitHub
parent
4ea4359ac1
commit
d6000a208c
@@ -115,19 +115,23 @@ func (s *Site) reset() *Site {
|
||||
}
|
||||
|
||||
// newSite creates a new site in the given language.
|
||||
func newSite(lang *helpers.Language) *Site {
|
||||
func newSite(lang *helpers.Language, deps *deps, withTemplate ...func(templ tpl.Template) error) *Site {
|
||||
c := newPageCollections()
|
||||
// TODO(bep) globals (also see other Site creation places)
|
||||
deps := newDeps(DepsCfg{})
|
||||
// TODO(bep) globals
|
||||
viper.Set("currentContentLanguage", lang)
|
||||
|
||||
if deps == nil {
|
||||
depsCfg := DepsCfg{WithTemplate: withTemplate}
|
||||
deps = newDeps(depsCfg)
|
||||
}
|
||||
|
||||
return &Site{deps: deps, Language: lang, PageCollections: c, Info: newSiteInfo(siteBuilderCfg{pageCollections: c, language: lang})}
|
||||
|
||||
}
|
||||
|
||||
// NewSiteDefaultLang creates a new site in the default language.
|
||||
func NewSiteDefaultLang() *Site {
|
||||
return newSite(helpers.NewDefaultLanguage())
|
||||
func NewSiteDefaultLang(withTemplate ...func(templ tpl.Template) error) *Site {
|
||||
return newSite(helpers.NewDefaultLanguage(), nil, withTemplate...)
|
||||
}
|
||||
|
||||
// Convenience func used in tests.
|
||||
@@ -656,24 +660,23 @@ func (s *Site) reProcess(events []fsnotify.Event) (whatChanged, error) {
|
||||
|
||||
}
|
||||
|
||||
func (s *Site) loadTemplates() {
|
||||
s.owner.tmpl = tpl.InitializeT(s.log)
|
||||
s.owner.tmpl.LoadTemplates(s.absLayoutDir())
|
||||
if s.hasTheme() {
|
||||
s.owner.tmpl.LoadTemplatesWithPrefix(s.absThemeDir()+"/layouts", "theme")
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Site) prepTemplates(withTemplate func(templ tpl.Template) error) error {
|
||||
s.loadTemplates()
|
||||
|
||||
if withTemplate != nil {
|
||||
if err := withTemplate(s.owner.tmpl); err != nil {
|
||||
return err
|
||||
wt := func(tmpl tpl.Template) error {
|
||||
// TODO(bep) global error handling
|
||||
tmpl.LoadTemplates(s.absLayoutDir())
|
||||
if s.hasTheme() {
|
||||
tmpl.LoadTemplatesWithPrefix(s.absThemeDir()+"/layouts", "theme")
|
||||
}
|
||||
if withTemplate != nil {
|
||||
if err := withTemplate(tmpl); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
s.owner.tmpl.MarkReady()
|
||||
s.refreshTemplates(wt)
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -778,6 +781,7 @@ func (s *Site) process(config BuildCfg) (err error) {
|
||||
if err = s.initialize(); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
s.prepTemplates(config.withTemplate)
|
||||
s.owner.tmpl.PrintErrors()
|
||||
s.timerStep("initialize & template prep")
|
||||
|
Reference in New Issue
Block a user