package hn import ( "errors" "html/template" "io" "github.com/labstack/echo" ) // Define the template registry struct type TemplateRegistry struct { templates map[string]*template.Template } // Implement e.Renderer interface func (t *TemplateRegistry) Render(w io.Writer, name string, data interface{}, c echo.Context) error { tmpl, ok := t.templates[name] if !ok { err := errors.New("Template not found -> " + name) return err } return tmpl.ExecuteTemplate(w, "base.html", data) } func NewTemplate(templatesDir string) *TemplateRegistry { //ext := ".html" ins := TemplateRegistry{ templates: map[string]*template.Template{}, } //layout := templatesDir + "base" + ext templates := make(map[string]*template.Template) templates["index"] = template.Must(template.ParseFiles("_pages/index.html", "_layouts/base.html")) //templates["about.html"] = template.Must(template.ParseFiles("view/about.html", "view/base.html")) return &ins }