From 6b922750f3d953b5a5c154c71221eccd3da5134a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sun, 28 Feb 2016 12:15:33 +0100 Subject: [PATCH] Revert "Create template clone for late template execution" This reverts commit 93b04e67f633e96484c29158cad00e86abe64c1e. --- hugolib/site.go | 7 +------ tpl/template.go | 20 -------------------- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/hugolib/site.go b/hugolib/site.go index bb88f756e..f3e14399b 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -595,7 +595,6 @@ func (s *Site) prepTemplates() { if s.hasTheme() { s.Tmpl.LoadTemplatesWithPrefix(s.absThemeDir()+"/layouts", "theme") } - s.Tmpl.MarkReady() } func (s *Site) addTemplate(name, data string) error { @@ -1367,15 +1366,11 @@ func (s *Site) RenderPages() error { // this cannot be fanned out to multiple Go routines // See issue #1601 // TODO(bep): Check the IsRenderable logic. - - // Issue #1879 - templ := s.Tmpl.Clone() - for _, p := range s.Pages { var layouts []string if !p.IsRenderable() { self := "__" + p.TargetPath() - _, err := templ.New(self).Parse(string(p.Content)) + _, err := s.Tmpl.New(self).Parse(string(p.Content)) if err != nil { results <- err continue diff --git a/tpl/template.go b/tpl/template.go index fa8347efd..c5a23628a 100644 --- a/tpl/template.go +++ b/tpl/template.go @@ -37,14 +37,12 @@ type Template interface { Lookup(name string) *template.Template Templates() []*template.Template New(name string) *template.Template - Clone() *template.Template LoadTemplates(absPath string) LoadTemplatesWithPrefix(absPath, prefix string) AddTemplate(name, tpl string) error AddAceTemplate(name, basePath, innerPath string, baseContent, innerContent []byte) error AddInternalTemplate(prefix, name, tpl string) error AddInternalShortcode(name, tpl string) error - MarkReady() PrintErrors() } @@ -55,8 +53,6 @@ type templateErr struct { type GoHTMLTemplate struct { template.Template - clone *template.Template - ready bool errors []*templateErr } @@ -144,22 +140,6 @@ func (t *GoHTMLTemplate) LoadEmbedded() { t.EmbedTemplates() } -// MarkReady marks the template as "ready for execution". No changes allowed -// after this is set. -func (t *GoHTMLTemplate) MarkReady() { - t.clone = template.Must(t.Template.Clone()) - t.ready = true -} - -// Since Go 1.6, the template cannot change once executed. So we have to create -// a clone and work with that in some rare cases. -func (t *GoHTMLTemplate) Clone() *template.Template { - if !t.ready { - panic("template clone called too early") - } - return template.Must(t.clone.Clone()) -} - func (t *GoHTMLTemplate) AddInternalTemplate(prefix, name, tpl string) error { if prefix != "" { return t.AddTemplate("_internal/"+prefix+"/"+name, tpl)