aboutsummaryrefslogtreecommitdiff
path: root/forged/internal/incoming/web/templates/load.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-08-18 02:09:50 +0800
committerRunxi Yu <me@runxiyu.org>2025-08-18 02:09:50 +0800
commitaa63d26cdd4284faf67f9582d34a12c8767aed15 (patch)
treebd895fd2c5a87b4cf5d943775e6a1eff730886bd /forged/internal/incoming/web/templates/load.go
parentAdd templates and static paths to the web config (diff)
downloadforge-aa63d26cdd4284faf67f9582d34a12c8767aed15.tar.gz
forge-aa63d26cdd4284faf67f9582d34a12c8767aed15.tar.zst
forge-aa63d26cdd4284faf67f9582d34a12c8767aed15.zip
Add template rendering
Diffstat (limited to 'forged/internal/incoming/web/templates/load.go')
-rw-r--r--forged/internal/incoming/web/templates/load.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/forged/internal/incoming/web/templates/load.go b/forged/internal/incoming/web/templates/load.go
new file mode 100644
index 0000000..4a6fc49
--- /dev/null
+++ b/forged/internal/incoming/web/templates/load.go
@@ -0,0 +1,31 @@
+package templates
+
+import (
+ "html/template"
+ "io/fs"
+ "os"
+ "path/filepath"
+)
+
+func MustParseDir(dir string, funcs template.FuncMap) *template.Template {
+ base := template.New("").Funcs(funcs)
+
+ err := filepath.WalkDir(dir, func(path string, d fs.DirEntry, err error) error {
+ if err != nil {
+ return err
+ }
+ if d.IsDir() {
+ return nil
+ }
+ b, err := os.ReadFile(path)
+ if err != nil {
+ return err
+ }
+ _, err = base.Parse(string(b))
+ return err
+ })
+ if err != nil {
+ panic(err)
+ }
+ return base
+}