shithub: hugo

Download patch

ref: 2f2297bdb324471be3976809dfc545e211b4db08
parent: 66ed5c5e02822abb6c48c990681021d02a00a713
author: spf13 <[email protected]>
date: Fri Jan 30 06:19:46 EST 2015

shortcodes using BBP

--- a/hugolib/shortcode.go
+++ b/hugolib/shortcode.go
@@ -24,6 +24,7 @@
 	"strings"
 	"sync"
 
+	bp "github.com/spf13/hugo/bufferpool"
 	"github.com/spf13/hugo/helpers"
 	"github.com/spf13/hugo/tpl"
 	jww "github.com/spf13/jwalterweatherman"
@@ -383,8 +384,11 @@
 	pt := &pageTokens{lexer: newShortcodeLexer("parse-page", stringToParse, pos(startIdx))}
 
 	id := 1 // incremented id, will be appended onto temp. shortcode placeholders
-	var result bytes.Buffer
 
+	result := bp.GetBuffer()
+	defer bp.PutBuffer(result)
+	//var result bytes.Buffer
+
 	// the parser is guaranteed to return items in proper order or fail, so …
 	// … it's safe to keep some "global" state
 	var currItem item
@@ -495,7 +499,9 @@
 }
 
 func ShortcodeRender(tmpl *template.Template, data *ShortcodeWithPage) string {
-	buffer := new(bytes.Buffer)
+	buffer := bp.GetBuffer()
+	defer bp.PutBuffer(buffer)
+
 	err := tmpl.Execute(buffer, data)
 	if err != nil {
 		jww.ERROR.Println("error processing shortcode", tmpl.Name(), "\n ERR:", err)