public/view/hello.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{define "hello"}}Hello, {{.}}!{{end}}
</body>
</html>
main.go
import (
"html/template"
"io"
"net/http"
"github.com/labstack/echo"
)
type Template struct {
templates *template.Template
}
func (t *Template) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
return t.templates.ExecuteTemplate(w, name, data)
}
func Hello(c echo.Context) error {
return c.Render(http.StatusOK, "hello", "World")
}
func main(){
e := echo.New()
t := &Template{
templates: template.Must(template.ParseGlob("public/views/*.html")),
}
e.Renderer = t
e.GET("/hello", Hello)
e.Logger.Fatal(e.Start(":8000"))
}

うーむ、出来たのはわかったけど、イマイチ仕組みがわからん


