package main import ( "html/template" "net/http" ) type Web struct { Messages *MessageList SiteName string SSHAddr string } var siteTemplate string = `
Hello! To add your own message, run:
ssh {{ .Addr }}
{{range .Msgs}}
{{end}} ` func (w *Web) ListenAndServe(addr string) { tmpl := template.Must(template.New("tmpl").Parse(siteTemplate)) http.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) { tmpl.Execute(rw, map[string]interface{}{ "Msgs": w.Messages.Reverse(), "Name": w.SiteName, "Addr": w.SSHAddr, }) }) http.ListenAndServe(addr, nil) }