summaryrefslogtreecommitdiff
path: root/app/views/render.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-04-21 22:40:14 -0600
committermo khan <mo@mokhan.ca>2025-04-21 22:40:14 -0600
commit04120f5bfe0934f82745ea6783f0c785bbcd1050 (patch)
tree89b7946f120bb91444c204c71cbd5923a67a357a /app/views/render.go
parentd674365b49f94b7d8f50411350287113a13509c1 (diff)
refactor: extract views package to render html templates
Diffstat (limited to 'app/views/render.go')
-rw-r--r--app/views/render.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/views/render.go b/app/views/render.go
new file mode 100644
index 0000000..d06a4f7
--- /dev/null
+++ b/app/views/render.go
@@ -0,0 +1,27 @@
+package views
+
+import (
+ "embed"
+ "html/template"
+ "io"
+)
+
+//go:embed **/*.html.tmpl
+var fs embed.FS
+
+func Get(path string) (*template.Template, error) {
+ return template.ParseFS(fs, path+".html.tmpl")
+}
+
+func Render[T any](w io.Writer, path string, data T) error {
+ tmpl, err := Get(path)
+ if err != nil {
+ return err
+ }
+
+ if err := tmpl.Execute(w, data); err != nil {
+ return err
+ }
+
+ return nil
+}