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"}}
-
-
-
- {{ .Content }}
-
-
-{{end}}
-
-{{define "bot-message"}}
-
-
-
- {{ .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}}