45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
# 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
|
|
|
|
```go
|
|
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](https://pkg.go.dev/github.com/flosch/pongo2?tab=doc#TemplateLoader) documentation. It allows you to for example embed resources from a virtual filesystem. |