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

57 lines
994 B
Go
Raw Normal View History

2023-10-12 16:56:52 +03:00
package main
2023-10-13 13:44:47 +03:00
import (
2023-10-16 09:10:19 +03:00
"io/fs"
"path/filepath"
"strings"
2023-10-13 13:44:47 +03:00
"github.com/gofiber/fiber/v2"
"github.com/gofiber/template/html/v2"
)
2023-10-12 16:56:52 +03:00
func main() {
2023-10-13 13:44:47 +03:00
app := fiber.New(fiber.Config{
Views: setupTemplates(),
})
app.Static("/public", "./public")
2023-10-12 16:56:52 +03:00
app.Get("/", func(ctx *fiber.Ctx) error {
2023-10-13 13:44:47 +03:00
return ctx.Render("index", fiber.Map{})
2023-10-12 16:56:52 +03:00
})
app.Listen("localhost:4200")
}
2023-10-13 13:44:47 +03:00
func setupTemplates() *html.Engine {
engine := html.New("./views", ".html")
2023-10-16 09:10:19 +03:00
// 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
2023-10-13 13:44:47 +03:00
return engine
}