more file stuff
This commit is contained in:
parent
ef674d9074
commit
835c62ef64
1 changed files with 29 additions and 3 deletions
|
|
@ -5,11 +5,13 @@ import (
|
||||||
"embed"
|
"embed"
|
||||||
"html/template"
|
"html/template"
|
||||||
"io"
|
"io"
|
||||||
|
"io/fs"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Render struct {
|
type Render struct {
|
||||||
fs embed.FS
|
fs embed.FS
|
||||||
t *template.Template
|
t *template.Template
|
||||||
|
FileExtension string
|
||||||
}
|
}
|
||||||
|
|
||||||
type Data map[string]interface{}
|
type Data map[string]interface{}
|
||||||
|
|
@ -23,8 +25,32 @@ func NewRender(efs embed.FS, t *template.Template) Render {
|
||||||
return tr
|
return tr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewRenderWithoutTemplate(ets embed.FS) (Render, error) {
|
||||||
|
tmpl, err := template.ParseFS(ets, "templates/*")
|
||||||
|
if err != nil {
|
||||||
|
return Render{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
r := NewRender(ets, tmpl)
|
||||||
|
return r, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (r Render) Render(ctx context.Context, w io.Writer, name string, data interface{}) error {
|
func (r Render) Render(ctx context.Context, w io.Writer, name string, data interface{}) error {
|
||||||
tmpl := template.Must(r.t.Clone())
|
tmpl := template.Must(r.t.Clone())
|
||||||
|
_, err := fs.Stat(r.fs, "templates/"+name+".txt")
|
||||||
|
if err == nil {
|
||||||
|
tmpl = template.Must(tmpl.ParseFS(r.fs, "templates/"+name+".txt"))
|
||||||
|
}
|
||||||
|
_, err = fs.Stat(r.fs, "templates/"+name+".html")
|
||||||
|
if err == nil {
|
||||||
tmpl = template.Must(tmpl.ParseFS(r.fs, "templates/"+name+".html"))
|
tmpl = template.Must(tmpl.ParseFS(r.fs, "templates/"+name+".html"))
|
||||||
|
}
|
||||||
|
_, err = fs.Stat(r.fs, "templates/"+name)
|
||||||
|
if err == nil {
|
||||||
|
tmpl = template.Must(tmpl.ParseFS(r.fs, "templates/"+name))
|
||||||
|
}
|
||||||
return tmpl.ExecuteTemplate(w, name, data)
|
return tmpl.ExecuteTemplate(w, name, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r Render) RenderToString(ctx context.Context, name string, data interface{}) (string, error) {
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue