From 29183bc0e011969b288260e5b0ddd682c5e56542 Mon Sep 17 00:00:00 2001 From: Adrien Date: Sun, 21 Apr 2024 14:32:32 +0200 Subject: [PATCH] Working django layout --- layouts/chat.html | 58 -------------------- main.go | 20 ++++--- views/chat.html | 5 ++ layouts/base.html => views/layouts/main.html | 28 +--------- views/partials/bot-message.html | 12 ++++ views/partials/chat-input.html | 3 + views/partials/chat-messages.html | 11 ++++ views/partials/navbar.html | 19 +++++++ views/partials/user-message.html | 12 ++++ {layouts => views}/welcome.html | 5 +- 10 files changed, 77 insertions(+), 96 deletions(-) delete mode 100644 layouts/chat.html create mode 100644 views/chat.html rename layouts/base.html => views/layouts/main.html (53%) create mode 100644 views/partials/bot-message.html create mode 100644 views/partials/chat-input.html create mode 100644 views/partials/chat-messages.html create mode 100644 views/partials/navbar.html create mode 100644 views/partials/user-message.html rename {layouts => views}/welcome.html (85%) diff --git a/layouts/chat.html b/layouts/chat.html deleted file mode 100644 index aba06b6..0000000 --- a/layouts/chat.html +++ /dev/null @@ -1,58 +0,0 @@ -{{define "user-message"}} -
-
-

User

-
- - -
-
-
- {{ .Content }} -
-
-{{end}} - -{{define "bot-message"}} -
-
-

Bot

-
- - -
-
-
- {{ .Content }} -
-
-{{end}} - -{{define "chat-input"}} -
- -
-{{end}} - -{{define "chat-messages"}} -
-
- {{range .Messages}} - {{if eq .Role "user"}} - {{template "user-message" .Message}} - {{else}} - {{template "bot-message" .Message}} - {{end}} - {{end}} -
-
-{{end}} - - -{{ define "content" }} -
-

Chat Page

- {{template "chat-messages" .Messages}} - {{template "chat-input"}} -
-{{ end }} \ No newline at end of file diff --git a/main.go b/main.go index d105de1..91a8bb1 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,7 @@ import ( "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/middleware/logger" - "github.com/gofiber/template/html/v2" + "github.com/gofiber/template/django/v3" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" @@ -15,11 +15,6 @@ import ( var mongoClient *mongo.Client -type User struct { - Username string - Email string -} - type Message struct { ID primitive.ObjectID `bson:"_id"` Content string `bson:"message"` @@ -47,8 +42,13 @@ func connectToMongoDB(uri string) { } func main() { + // Import HTML using django engine/template + engine := django.New("./views", ".html") + if engine == nil { + panic("Failed to create django engine") + } + // Create new Fiber instance. Can use any framework. I use fiber for speed and simplicity - engine := html.New("./layouts", ".html") app := fiber.New(fiber.Config{ Views: engine, AppName: "JADE 2.0", @@ -77,11 +77,13 @@ func main() { } func indexHandler(c *fiber.Ctx) error { - return c.Render("base", fiber.Map{}, "welcome") + return c.Render("welcome", fiber.Map{}, "layouts/main") } func chatPageHandler(c *fiber.Ctx) error { - return c.Render("base", nil, "chat") + return c.Render("chat", fiber.Map{ + "Messages": []Message{}, + }, "layouts/main") } func addMessageHandler(c *fiber.Ctx) error { diff --git a/views/chat.html b/views/chat.html new file mode 100644 index 0000000..eb752ca --- /dev/null +++ b/views/chat.html @@ -0,0 +1,5 @@ +
+

Chat Page

+ {% include "partials/chat-messages.html" %} + {% include "partials/chat-input.html" %} +
\ No newline at end of file diff --git a/layouts/base.html b/views/layouts/main.html similarity index 53% rename from layouts/base.html rename to views/layouts/main.html index 0fcd437..7b70653 100644 --- a/layouts/base.html +++ b/views/layouts/main.html @@ -9,9 +9,9 @@ - {{ template "navbar" . }} + {% include "partials/navbar.html" %} - {{template "content" .}} + {{embed}}