commit 6b922750f3d953b5a5c154c71221eccd3da5134a
parent 93b04e67f633e96484c29158cad00e86abe64c1e
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Sun, 28 Feb 2016 12:15:33 +0100
Revert "Create template clone for late template execution"
This reverts commit 93b04e67f633e96484c29158cad00e86abe64c1e.
Diffstat:
2 files changed, 1 insertion(+), 26 deletions(-)
diff --git 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
@@ -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)