code: func executeTemplateFunc(t *template.Template) func(string, ...interface{}) (string, error) {
  	return func(s string, data ...interface{}) (string, error) {
  		var dot interface{}
  		switch len(data) {
  		case 0:
  			dot = nil
  		case 1:
  			dot = data[0]
  		default:
  			return "", fmt.Errorf("executeTemplate: wrong number of arguments, expected 1 or 2"+
  				", but got %d", len(data)+1)
  		}
  		var b bytes.Buffer
  		if err := t.ExecuteTemplate(&b, s, dot); err != nil {
  			return "", err
  		}
  		return b.String(), nil
  	}
  }
docs: // executeTemplateFunc executes the given template in the context of the
  // parent. If an argument is specified, it will be used as the context instead.
  // This can be used for nested template definitions.