burning.moe/cmd/web/routes.go
Lilian Jónsdóttir 3dbd5a86e2 major refactor of render
- split many parts of RenderTemplate into their own functions so they can be used individually
- move web apps into their own page, add projects page, both generated by executing links.tmpl
  with their own yaml data
- handle / specially, generating LinkMap from Handlers
2024-01-24 00:20:07 -08:00

35 lines
913 B
Go

package main
import (
"net/http"
"git.burning.moe/celediel/burning.moe/internal/config"
"git.burning.moe/celediel/burning.moe/internal/handlers"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
)
// routes handles all of the HTTP setup. Middleware is enabled,
// static fileserver is setup, and handlers are ... handled
func routes(app *config.AppConfig) http.Handler {
mux := chi.NewRouter()
// Import some middleware
mux.Use(middleware.Recoverer)
// Setup static file server
app.Logger.Debug("Setting up /static file server")
mux.Handle("/static/*", http.StripPrefix("/static", http.FileServer(http.Dir("./static"))))
// Setup routes for handlers
for _, handler := range handlers.Handlers {
app.Logger.Info("Setting up handler for " + handler.Handles)
mux.Get(handler.Handles, handler.Handler)
}
// Setup home handler
mux.Get("/", handlers.HomeHandler)
return mux
}