added v6
This commit is contained in:
parent
58abe7d1d0
commit
8abf6c96b7
52
v6/render.go
Normal file
52
v6/render.go
Normal file
@ -0,0 +1,52 @@
|
||||
package ginpongo2
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/flosch/pongo2/v6"
|
||||
"github.com/gin-gonic/gin/render"
|
||||
)
|
||||
|
||||
var Suffix = ".html.twig"
|
||||
|
||||
type Pongo struct {
|
||||
set *pongo2.TemplateSet
|
||||
}
|
||||
|
||||
func (p *Pongo) Instance(name string, data interface{}) render.Render {
|
||||
r := new(PongoRenderer)
|
||||
tpl, e := p.set.FromCache(fmt.Sprintf("%s%s", name, Suffix))
|
||||
if e != nil {
|
||||
panic(e)
|
||||
}
|
||||
r.tpl = tpl
|
||||
r.data = data
|
||||
return r
|
||||
}
|
||||
|
||||
type PongoRenderer struct {
|
||||
tpl *pongo2.Template
|
||||
data interface{}
|
||||
}
|
||||
|
||||
func (r *PongoRenderer) Render(w http.ResponseWriter) error {
|
||||
if r.data == nil {
|
||||
r.data = make(pongo2.Context)
|
||||
}
|
||||
d := r.data.(pongo2.Context)
|
||||
return r.tpl.ExecuteWriter(d, w)
|
||||
}
|
||||
|
||||
func (r *PongoRenderer) WriteContentType(w http.ResponseWriter) {
|
||||
if v := w.Header().Get("content-type"); len(v) == 0 {
|
||||
w.Header().Set("content-type", "text/html; charset=utf8")
|
||||
}
|
||||
}
|
||||
|
||||
func New(debug bool, loaders ...pongo2.TemplateLoader) *Pongo {
|
||||
p := new(Pongo)
|
||||
p.set = pongo2.NewSet("html", loaders...)
|
||||
p.set.Debug = debug
|
||||
return p
|
||||
}
|
Loading…
Reference in New Issue
Block a user