package main import ( "html/template" "io/ioutil" "log" "os" ) const tmplt = ` index ` func main() { dir, err := ioutil.ReadDir(".") lfOnErr("list directory", err) var files []string for _, fi := range dir { if fi.IsDir() { continue } if fi.Name() == "index.html" { continue } files = append(files, fi.Name()) } t, err := template.New("index").Parse(tmplt) lfOnErr("parse template", err) f, err := os.Create("index.html") lfOnErr("create index.html", err) defer f.Close() lfOnErr("execute template", t.Execute(f, files)) } func lfOnErr(note string, err error) { if err != nil { log.Fatalf("failed to %s: %v", note, err) } }