From 4c94cc3e952ba8557c7cb8005a6f5da7b2da72ed Mon Sep 17 00:00:00 2001 From: Evan Reichard Date: Fri, 6 Feb 2026 10:44:13 -0500 Subject: [PATCH] fix(handlers): normalize filename to prevent double .md extension Strip .md suffix from filename when creating files to prevent filename.md.md from being created. This aligns with the behavior in FileHandler which also normalizes filenames from URLs. Fixes issue where files created with .md extension could not be deleted due to filename mismatch. --- backend/handlers/handlers.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/handlers/handlers.go b/backend/handlers/handlers.go index 043025b..20d01ce 100644 --- a/backend/handlers/handlers.go +++ b/backend/handlers/handlers.go @@ -104,7 +104,10 @@ func (h *Handler) createFile(w http.ResponseWriter, r *http.Request) { return } - if err := h.storage.Save(req.Name, req.Content); err != nil { + // Normalize filename by stripping .md extension if present + name := strings.TrimSuffix(req.Name, ".md") + + if err := h.storage.Save(name, req.Content); err != nil { h.log.WithError(err).Error("Failed to create file") h.sendError(w, http.StatusInternalServerError, "failed to create file") return @@ -112,7 +115,7 @@ func (h *Handler) createFile(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusCreated) - json.NewEncoder(w).Encode(FileResponse{Name: req.Name, Content: req.Content}) + json.NewEncoder(w).Encode(FileResponse{Name: name, Content: req.Content}) } func (h *Handler) getFile(w http.ResponseWriter, r *http.Request, name string) {