From 7003dad563fbccf66189b6118b7c5fa1776fdf71 Mon Sep 17 00:00:00 2001 From: Alex Scerba Date: Tue, 8 Sep 2026 16:23:06 -0500 Subject: Fix character escaping issues on RSS --- cmd/http/feed.go | 5 +++-- cmd/http/handle.go | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'cmd') diff --git a/cmd/http/feed.go b/cmd/http/feed.go index 59f5ad1..e14c250 100644 --- a/cmd/http/feed.go +++ b/cmd/http/feed.go @@ -1,6 +1,7 @@ package main import ( + "net/url" "time" ) @@ -29,8 +30,8 @@ func generateFeed(domain string, posts []*Post) []byte { entry := ` ` + post.Title + ` - - https://` + domain + `/blog/` + post.File + ` + + https://` + domain + `/blog/` + url.QueryEscape(post.File) + ` ` + post.Date + `T00:00:00.000Z ` + post.Date + `T00:00:00.000Z Blog post` diff --git a/cmd/http/handle.go b/cmd/http/handle.go index 3d49a59..ac03f6d 100644 --- a/cmd/http/handle.go +++ b/cmd/http/handle.go @@ -3,6 +3,7 @@ package main import ( "bytes" "net/http" + "net/url" "strings" "time" ) @@ -72,6 +73,7 @@ func (app *application) blog(w http.ResponseWriter, r *http.Request) { return } } else if len(path) == 3 { + path[2], _ = url.PathUnescape(path[2]) if !app.fileExists("html/" + path[1] + "/" + path[2] + ".tmpl.html") { app.notFound(w) return @@ -98,6 +100,7 @@ func (app *application) archive(w http.ResponseWriter, r *http.Request) { // Redirect to /blog http.Redirect(w, r, "/blog", http.StatusFound) } else if len(path) == 3 { + path[2], _ = url.PathUnescape(path[2]) if !app.fileExists("html/" + path[1] + "/" + path[2] + ".tmpl.html") { app.notFound(w) return -- cgit v1.2.3