From 6484b723423512733f91629f44d67466f9fe7567 Mon Sep 17 00:00:00 2001 From: "Alexander \"Arav\" Andreev" Date: Tue, 24 May 2022 18:30:14 +0400 Subject: [PATCH] Embed templates and assets code was moved to a separate package. --- web/web.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 web/web.go diff --git a/web/web.go b/web/web.go new file mode 100644 index 0000000..a2ff05e --- /dev/null +++ b/web/web.go @@ -0,0 +1,46 @@ +package web + +import ( + "dwelling-radio/pkg/logging" + "embed" + "html/template" + "net/http" + + "github.com/Joker/jade" +) + +var compiledTemplates map[string]*template.Template + +//go:embed assets +var assetsDir embed.FS + +func Assets() http.FileSystem { + return http.FS(assetsDir) +} + +func AssetsGetFile(path string) ([]byte, error) { + return assetsDir.ReadFile(path) +} + +//go:embed templates +var templatesDir embed.FS + +func Template(name string) *template.Template { + return compiledTemplates[name] +} + +func CompileTemplates(lErr *logging.Logger) { + compiledTemplates = make(map[string]*template.Template) + + indexStr, err := jade.ParseFileFromFileSystem("index.jade", http.FS(templatesDir)) + if err != nil { + lErr.Fatalln(err) + } + + indexTpl, err := template.New("index").Parse(indexStr) + if err != nil { + lErr.Fatalln(err) + } + + compiledTemplates["index"] = indexTpl +}