package main import ( "fmt" "net/http" "path/filepath" "strings" "github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5/middleware" "git.kealoha.me/lks/lenslocked/views" ) func addStaticTemplate(r chi.Router, pattern string, filepath string) { tpl := views.Must(views.FromFile(filepath)) var testWriter strings.Builder err := tpl.ExecuteWriter(&testWriter, nil) if err != nil { panic(err) } r.Get(pattern, func(w http.ResponseWriter, r *http.Request) { tpl.Execute(w, nil) }) } func notFoundHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf8") w.WriteHeader(http.StatusNotFound) fmt.Fprint(w, "404 page not found") } func main() { r := chi.NewRouter() r.Use(middleware.Logger) addStaticTemplate(r, "/", filepath.Join("templates", "home.gohtml")) addStaticTemplate(r, "/contact", filepath.Join("templates", "contact.gohtml")) addStaticTemplate(r, "/faq", filepath.Join("templates", "faq.gohtml")) r.NotFound(notFoundHandler) fmt.Println("Starting the server on :3000...") http.ListenAndServe(":3000", r) }