package tpl import ( "html/template" "net/http" ) var rndr Renderer func Render() Renderer { return rndr } type Renderer interface { html(w http.ResponseWriter, req *http.Request, name string, data map[string]any) json(w http.ResponseWriter, data any) } type render struct { config *TemplateConfig templates map[string]*template.Template } func Init() error { render := &render{ config: &TemplateConfig{ Root: ".", Extension: ".tmpl", Layout: "base", Partial: "partial", }, } templates, err := render.createTemplateCache() if err != nil { return err } render.templates = templates rndr = render return nil } func InitJson() error { rndr = &render{} return nil }