From f570a799e677dff659e71a35f5e3f0319d27ae3c Mon Sep 17 00:00:00 2001 From: jc <46619361+juancwu@users.noreply.github.com> Date: Sat, 21 Oct 2023 00:54:52 -0400 Subject: [PATCH] add routes --- cmd/main.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++ pkg/pages/index.go | 19 ++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 cmd/main.go create mode 100644 pkg/pages/index.go diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..8212556 --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,50 @@ +package main + +import ( + "html/template" + "io" + "log" + "os" + + "github.com/joho/godotenv" + "github.com/labstack/echo/v4" + "github.com/labstack/echo/v4/middleware" + + "github.com/juancwu/potoforio/pkg/pages" +) + +type TemplateRenderer struct { + templates *template.Template +} + +func main() { + // Load connection string from .env file + err := godotenv.Load() + if err != nil { + log.Fatal("failed to load env", err) + } + + templates, err := template.New("").ParseGlob("public/views/*.html") + if err != nil { + log.Fatalf("Error initializing templates: %v", err) + os.Exit(1) + } + + e := echo.New() + e.Renderer = &TemplateRenderer{ + templates: templates, + } + + e.Use(middleware.Logger()) + e.Static("/static", "static") + + e.GET("/", pages.Index) + e.GET("/projects", pages.Projects) + e.GET("/about-me", pages.AboutMe) + + e.Logger.Fatal(e.Start(":5173")) +} + +func (t *TemplateRenderer) Render(w io.Writer, name string, data interface{}, c echo.Context) error { + return t.templates.ExecuteTemplate(w, name, data) +} diff --git a/pkg/pages/index.go b/pkg/pages/index.go new file mode 100644 index 0000000..3bac1a8 --- /dev/null +++ b/pkg/pages/index.go @@ -0,0 +1,19 @@ +package pages + +import ( + "github.com/labstack/echo/v4" +) + +type Page struct {} + +func Index(c echo.Context) error { + return c.Render(200, "index.html", Page{}) +} + +func Projects(c echo.Context) error { + return c.Render(200, "projects.html", Page{}) +} + +func AboutMe(c echo.Context) error { + return c.Render(200, "about-me.html", Page{}) +}