From 07e3c8d432d2ff9a51b54b93b384747bb038c939 Mon Sep 17 00:00:00 2001 From: roerick Date: Sun, 19 Oct 2025 17:12:05 -0600 Subject: markdown working --- blog/blog.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 blog/blog.go (limited to 'blog') diff --git a/blog/blog.go b/blog/blog.go new file mode 100644 index 0000000..8121043 --- /dev/null +++ b/blog/blog.go @@ -0,0 +1,44 @@ +package blog + +import ( + "os" + "io" + "fmt" + "net/http" + + "github.com/gorilla/mux" +) + +type FileReader struct{} + +type SlugReader interface { + Read(slug string) (string, error) +} + +func (fsr FileReader) Read(slug string) (string, error) { + f, err := os.Open(slug + ".md") + if err != nil { + return "", err + } + defer f.Close() + b, err := io.ReadAll(f) + if err != nil { + return "", err + } + return string(b), nil +} + +func PostHandler(sl SlugReader) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) // Correctly retrieve vars from the request + slug := vars["slug"] // Access the slug + postMarkdown, err := sl.Read(slug) + if err != nil { + http.Error(w, "Post not found", http.StatusNotFound) + return + } + fmt.Fprint(w, postMarkdown) + } +} + + -- cgit v1.2.3