53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
package controllers
|
|
|
|
import (
|
|
"git.kealoha.me/lks/lenslocked/templates"
|
|
"git.kealoha.me/lks/lenslocked/views"
|
|
"net/http"
|
|
"strings"
|
|
)
|
|
|
|
type Template interface {
|
|
Execute(w http.ResponseWriter, data interface{})
|
|
}
|
|
|
|
func StaticController(templatePath ...string) http.HandlerFunc {
|
|
tpl := views.Must(views.FromFS(templates.FS, templatePath...))
|
|
|
|
var testWriter strings.Builder
|
|
err := tpl.ExecuteWriter(&testWriter, nil)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return func(w http.ResponseWriter, r *http.Request) { tpl.Execute(w, nil) }
|
|
}
|
|
|
|
func FAQ(templatePath ...string) http.HandlerFunc {
|
|
questions := []struct {
|
|
Question string
|
|
Answer string
|
|
}{
|
|
{
|
|
Question: "Is this a real website?",
|
|
Answer: "No.",
|
|
},
|
|
{
|
|
Question: "I Can Has Cheezburger?",
|
|
Answer: "No.",
|
|
},
|
|
}
|
|
|
|
tpl := views.Must(views.FromFS(templates.FS, templatePath...))
|
|
|
|
var testWriter strings.Builder
|
|
err := tpl.ExecuteWriter(&testWriter, nil)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return func(w http.ResponseWriter, r *http.Request) {
|
|
tpl.Execute(w, questions)
|
|
}
|
|
}
|