shithub: hugo

Download patch

ref: 7c5a1fd16bc76f010d2321371e3c2ef95b53556d
parent: 4c596483e1d8f47ba54ff957df2c3b17fa91aebe
author: Daniel Martí <[email protected]>
date: Sun Jan 3 07:53:45 EST 2016

Replace *bytes.Buffer with io.Writer in rendering

Found via github.com/mvdan/interfacer.

--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1691,7 +1691,7 @@
 	return err
 }
 
-func (s *Site) render(name string, d interface{}, renderBuffer *bytes.Buffer, layouts ...string) error {
+func (s *Site) render(name string, d interface{}, w io.Writer, layouts ...string) error {
 	layout, found := s.findFirstLayout(layouts...)
 	if found == false {
 		jww.WARN.Printf("Unable to locate layout for %s: %s\n", name, layouts)
@@ -1698,7 +1698,7 @@
 		return nil
 	}
 
-	if err := s.renderThing(d, layout, renderBuffer); err != nil {
+	if err := s.renderThing(d, layout, w); err != nil {
 		// Behavior here should be dependent on if running in server or watch mode.
 		distinctErrorLogger.Printf("Error while rendering %s: %v", name, err)
 		if !s.Running() {
--- a/tpl/template.go
+++ b/tpl/template.go
@@ -14,7 +14,6 @@
 package tpl
 
 import (
-	"bytes"
 	"fmt"
 	"github.com/eknkc/amber"
 	bp "github.com/spf13/hugo/bufferpool"
@@ -104,7 +103,7 @@
 	return ExecuteTemplateToHTML(context, "partials/"+name, "theme/partials/"+name)
 }
 
-func ExecuteTemplate(context interface{}, buffer *bytes.Buffer, layouts ...string) {
+func ExecuteTemplate(context interface{}, w io.Writer, layouts ...string) {
 	worked := false
 	for _, layout := range layouts {
 
@@ -115,7 +114,7 @@
 		}
 
 		if localTemplates.Lookup(name) != nil {
-			err := localTemplates.ExecuteTemplate(buffer, name, context)
+			err := localTemplates.ExecuteTemplate(w, name, context)
 			if err != nil {
 				jww.ERROR.Println(err, "in", name)
 			}