v4 | ||
go.mod | ||
go.sum | ||
README.md | ||
render.go |
pongo2 for gin
github.com/flosch/pongo2 master branch is used.
If you'd like to use pongo2.v3 see git.icod.de/dalu/pongo2v3
package main
import (
"github.com/gin-gonic/gin"
"git.icod.de/dalu/ginpongo2"
"github.com/flosch/pongo2"
)
func main () {
r := gin.Default()
pl := pongo2.MustNewLocalFileSystemLoader("templates")
// templates is the basePath
// gin.IsDebugging() means if gin is in debug/dev mode then templates
// will always be reloaded from disk, otherwise from cache and never
// reloaded.
pr := ginpongo2.New(gin.IsDebugging(), pl)
ginpongo2.Suffix = ".html.twig" // this is default
// when ever you render something reference it by prefix
// e.g. frontpage = frontpage.html.twig
r.HTMLRender = pr
r.GET("/", func(c *gin.Context) {
// only pongo2.Context or nil is accepted
ctx := make(pongo2.Context)
ctx["greeting"] = "hello world"
c.HTML(200, "frontpage", ctx)
})
r.Run(":8080")
}
You can also supply TemplateLoaders. See pongo2.TemplateLoader documentation. It allows you to for example embed resources from a virtual filesystem.