summaryrefslogtreecommitdiff
path: root/src/gmi/gmi.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/gmi/gmi.go')
-rw-r--r--src/gmi/gmi.go20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/gmi/gmi.go b/src/gmi/gmi.go
index 7d4d186..b543e05 100644
--- a/src/gmi/gmi.go
+++ b/src/gmi/gmi.go
@@ -119,6 +119,21 @@ func (a *api) Shutdown(ctx context.Context) error {
return a.srv.Shutdown(ctx)
}
+func indexMiddleware(h gemini.Handler) gemini.Handler {
+
+ return gemini.HandlerFunc(func(
+ ctx context.Context,
+ rw gemini.ResponseWriter,
+ r *gemini.Request,
+ ) {
+ if strings.HasSuffix(r.URL.Path, "/") {
+ r.URL.Path += "index.gmi"
+ }
+
+ h.ServeGemini(ctx, rw, r)
+ })
+}
+
func postsMiddleware(tplHandler gemini.Handler) gemini.Handler {
return gemini.HandlerFunc(func(
@@ -156,7 +171,10 @@ func (a *api) handler() (gemini.Handler, error) {
mux.Handle("/posts/", postsMiddleware(tplHandler))
mux.Handle("/", tplHandler)
- h := mux
+ var h gemini.Handler
+
+ h = mux
+ h = indexMiddleware(h)
// TODO logging
// TODO caching