aboutsummaryrefslogtreecommitdiff
path: root/home.go
diff options
context:
space:
mode:
Diffstat (limited to 'home.go')
-rw-r--r--home.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/home.go b/home.go
new file mode 100644
index 0000000..48feaef
--- /dev/null
+++ b/home.go
@@ -0,0 +1,43 @@
+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()
+}