more file stuff

This commit is contained in:
kekskurse 2025-03-01 15:16:40 +01:00
parent ef674d9074
commit 835c62ef64

View file

@ -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())
tmpl = template.Must(tmpl.ParseFS(r.fs, "templates/"+name+".html")) _, 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"))
}
_, 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) {
}