func (t *Template) Parse(filename string) (*Template, error) {
	tmplBytes, err := t.file(filename)
	if err != nil {
		return nil, err
	}
	newTmpl, err := t.tmpl.Parse(string(tmplBytes))
	if err != nil {
		return nil, err
	}
	return t.replaceTmpl(newTmpl), nil
}
Parse looks up the filename in the underlying Asset store,
then calls the underlying template's Parse function with the result.
returns an error if the file wasn't found or the Parse call failed
package template
import (
	"fmt"
	"html/template"
	"io"
)
type FuncMap template.FuncMap
type HTML string
type AssetFunc func(string) ([]byte, error)
func Must(t *Template, err error) *Template {
	if err != nil {
		panic(fmt.Sprintf("template error: %s", err))
	}
	if t == nil {
		panic(fmt.Sprintf("template was nil"))
	}
	return t
}
type Template struct {
	AssetFunc AssetFunc
	tmpl      *template.Template
}
func New(name string, fn AssetFunc) *Template {
	return &Template{fn, template.New(name)}
}
func (t *Template) Name() string {
	return t.tmpl.Name()
}
func (t *Template) Funcs(funcMap FuncMap) *Template {
	return t.replaceTmpl(t.tmpl.Funcs(template.FuncMap(funcMap)))
}
func (t *Template) Delims(left, right string) *Template {
	return t.replaceTmpl(t.tmpl.Delims(left, right))
}