1
0
mirror of https://github.com/labstack/echo.git synced 2025-01-01 22:09:21 +02:00
echo/website/content/guide/templates.md

59 lines
1.2 KiB
Markdown
Raw Normal View History

+++
title = "Templates"
description = "How to use templates in Echo"
[menu.main]
name = "Templates"
parent = "guide"
weight = 3
+++
## Template Rendering
`Context#Render(code int, name string, data interface{}) error` renders a template
with data and sends a text/html response with status code. Templates can be registered
using `Echo.SetRenderer()`, allowing us to use any template engine.
Example below shows how to use Go `html/template`:
1. Implement `echo.Renderer` interface
```go
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)
}
```
2. Pre-compile templates
`public/views/hello.html`
```html
{{define "hello"}}Hello, {{.}}!{{end}}
```
```go
t := &Template{
templates: template.Must(template.ParseGlob("public/views/*.html")),
}
```
3. Register templates
```go
e := echo.New()
e.Renderer = t
e.GET("/hello", Hello)
```
4. Render a template inside your handler
```go
func Hello(c echo.Context) error {
return c.Render(http.StatusOK, "hello", "World")
}
```