aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--handle_index.go20
-rw-r--r--templates/index.html20
2 files changed, 40 insertions, 0 deletions
diff --git a/handle_index.go b/handle_index.go
index b9a8a0c..5d54e6a 100644
--- a/handle_index.go
+++ b/handle_index.go
@@ -2,7 +2,27 @@ package main
import (
"net/http"
+ "os"
)
func handle_index(w http.ResponseWriter, r *http.Request) {
+ data := make(map[string]any)
+
+ entries, err := os.ReadDir(config.Git.Root)
+ if err != nil {
+ w.Write([]byte("Error listing categories: " + err.Error()))
+ return
+ }
+
+ categories := []string{}
+ for _, entry := range entries {
+ categories = append(categories, entry.Name())
+ }
+ data["categories"] = categories
+
+ err = templates.ExecuteTemplate(w, "index", data)
+ if err != nil {
+ w.Write([]byte("Error rendering template: " + err.Error()))
+ return
+ }
}
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..219ae09
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,20 @@
+{{- define "index" -}}
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="stylesheet" href="/static/style.css" />
+<title>Forge</title>
+</head>
+<body class="index">
+<div class="padding-wrapper">
+<ul>
+{{- range .categories }}
+<li>
+<a href="{{ . }}/">{{ . }}</a>
+</li>
+{{- end }}
+</ul>
+</div>
+</body>
+</html>
+{{- end -}}