41 lines
962 B
Go
41 lines
962 B
Go
|
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
|
||
|
}
|