package main import ( "io/ioutil" "net/http" "text/template" ) func init() { http.HandleFunc("/index", indexHandler) } var indextmpl = template.Must(template.ParseFiles("tmpl/root", "tmpl/index")) func indexHandler(w http.ResponseWriter, r *http.Request) { files, err := ioutil.ReadDir("data") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } p := new(Page) for _, entry := range files { file := entry.Name() if !entry.IsDir() && file[0] != '.' { p.Pages = append(p.Pages, entry) } } p.render(w, indextmpl) }