func (t *Template) Render(vars Bindings) ([]byte, SourceError) {
	buf := new(bytes.Buffer)
	err := render.Render(t.root, buf, vars, *t.cfg)
	if err != nil {
		return nil, err
	}
	return buf.Bytes(), nil
}
Render executes the template with the specified variable bindings.
package liquid
import (
	"bytes"
	"github.com/osteele/liquid/parser"
	"github.com/osteele/liquid/render"
)
type Template struct {
	root render.Node
	cfg  *render.Config
}
func newTemplate(cfg *render.Config, source []byte, path string, line int) (*Template, SourceError) {
	loc := parser.SourceLoc{Pathname: path, LineNo: line}
	root, err := cfg.Compile(string(source), loc)
	if err != nil {
		return nil, err
	}
	return &Template{root, cfg}, nil
}