From 0d4438337f055d52f0aa819b03ae370e4b571dd8 Mon Sep 17 00:00:00 2001 From: Himanshu Sardana Date: Wed, 18 Mar 2026 18:20:17 +0000 Subject: feat: add serve command --- main.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 054a5d5..69f8981 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "html/template" "io/fs" "log" + "net/http" "os" "path/filepath" "strings" @@ -26,6 +27,22 @@ func main() { contentDir := "./content" outputDir := "./output" + args := os.Args + if len(args) > 1 { + switch args[1] { + case "serve": + fs := http.FileServer(http.Dir("./output/")) + http.Handle("/", fs) + + log.Println("Serving on http://localhost:8000") + + err := http.ListenAndServe(":8000", nil) + if err != nil { + log.Fatalf("Error occured %s\n", err) + } + } + } + err := filepath.WalkDir(contentDir, func(path string, d fs.DirEntry, err error) error { if err != nil { return err @@ -40,37 +57,32 @@ func main() { title, htmlContent := convertToHtml(path) newPage := Page{ - Title: title, // you can customize this later + Title: title, Content: template.HTML(htmlContent), } - // Parse template once per file (could be optimized) tmpl, err := template.ParseFiles("./layout.html") if err != nil { log.Fatalf("Error parsing template: %s", err) } - // Compute relative path and output file path relPath, err := filepath.Rel(contentDir, path) if err != nil { log.Fatalf("Error computing relative path: %s", err) } outputFilePath := filepath.Join(outputDir, strings.Replace(relPath, ".md", ".html", 1)) - // Make sure the output directory exists err = os.MkdirAll(filepath.Dir(outputFilePath), 0o755) if err != nil { log.Fatalf("Error creating directories: %s", err) } - // Create the output file outputFile, err := os.Create(outputFilePath) if err != nil { log.Fatalf("Error creating output file: %s", err) } defer outputFile.Close() - // Execute template err = tmpl.Execute(outputFile, newPage) if err != nil { log.Fatalf("Error generating output content: %s", err) -- cgit v1.3.1