package main import ( "html/template" "io/ioutil" "log" "net/http" "github.com/gomarkdown/markdown" ) var templateIndexFiles = []string{ "templates/base.html", "templates/index.html" } var templateIndex = template.Must(template.ParseFiles(templateIndexFiles...)) var contentHTML template.HTML // just display README.md type IndexTemplateData struct { Content template.HTML } func loadReadme() { mdBytes, err := ioutil.ReadFile("README.md") if err != nil { log.Fatalf("Failed to read markdown file: %v", err) } htmlBytes := markdown.ToHTML(mdBytes, nil, nil) contentHTML = template.HTML(htmlBytes) } func renderIndexTemplate(w http.ResponseWriter) { if debug { reloadTemplate(&templateIndex, templateIndexFiles...) loadReadme() } err := templateIndex.Execute(w, IndexTemplateData{ Content: contentHTML, }) if err != nil { templateError(err, w) } } func setupHome() { loadReadme() }