This repository has been archived on 2024-07-05. You can view files and clone it, but cannot push or open issues or pull requests.
PrivacyHex/app.go

56 lines
994 B
Go

package main
import (
"io/fs"
"path/filepath"
"strings"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/template/html/v2"
)
func main() {
app := fiber.New(fiber.Config{
Views: setupTemplates(),
})
app.Static("/public", "./public")
app.Get("/", func(ctx *fiber.Ctx) error {
return ctx.Render("index", fiber.Map{})
})
app.Listen("localhost:4200")
}
func setupTemplates() *html.Engine {
engine := html.New("./views", ".html")
// TODO: enable only on DEV=true in env vars
engine.Reload(true)
assets := make(map[string]string)
filepath.WalkDir("./public/assets", func(path string, d fs.DirEntry, err error) error {
if !d.IsDir() {
name := d.Name()
parts := strings.Split(name, ".")
var key string
if len(parts) < 2 {
key = name
} else {
key = parts[0] + "." + parts[len(parts)-1]
}
assets[key] = path
}
return nil
})
engine.AddFunc("GetAsset", func(key string) string {
return assets[key]
})
// TODO: i18n
return engine
}