44 lines
957 B
Go
44 lines
957 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"html/template"
|
|
"log"
|
|
"net/http"
|
|
)
|
|
|
|
func main() {
|
|
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
|
render(w, "test.page.gohtml")
|
|
})
|
|
|
|
fmt.Println("Starting front end service on port 4000")
|
|
err := http.ListenAndServe(":4000", nil)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
}
|
|
|
|
func render(w http.ResponseWriter, t string) {
|
|
partials := []string{
|
|
"./cmd/web/templates/base.layout.gohtml",
|
|
"./cmd/web/templates/header.partial.gohtml",
|
|
"./cmd/web/templates/footer.partial.gohtml",
|
|
}
|
|
|
|
var templateSlice []string
|
|
templateSlice = append(templateSlice, fmt.Sprintf("./cmd/web/templates/%s", t))
|
|
|
|
templateSlice = append(templateSlice, partials...)
|
|
|
|
tmpl, err := template.ParseFiles(templateSlice...)
|
|
if err != nil {
|
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
return
|
|
}
|
|
|
|
if err := tmpl.Execute(w, nil); err != nil {
|
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
}
|
|
}
|