67 lines
1.2 KiB
Go
67 lines
1.2 KiB
Go
package tem
|
|
|
|
import (
|
|
"fmt"
|
|
"html/template"
|
|
"net/http"
|
|
)
|
|
|
|
var (
|
|
Templates *template.Template
|
|
)
|
|
|
|
func Load() {
|
|
Templates = template.Must(template.ParseGlob("tem/html/*.html"))
|
|
fmt.Println("templates loaded")
|
|
}
|
|
|
|
func Render(
|
|
w http.ResponseWriter,
|
|
r *http.Request,
|
|
template string,
|
|
page string,
|
|
title string,
|
|
desc string,
|
|
page_data interface{},
|
|
) {
|
|
w.WriteHeader(http.StatusOK)
|
|
|
|
data := struct {
|
|
Host string
|
|
Page string
|
|
Title string
|
|
Desc string
|
|
Local bool
|
|
Root bool
|
|
Data interface{}
|
|
}{
|
|
Host: r.Host,
|
|
Page: page,
|
|
Title: title,
|
|
Desc: desc,
|
|
Local: true, // (os.Getenv("LOCAL") == "true"), // toggle here for flag testing
|
|
Root: true, // (os.Getenv("HOST_IDEABRELLA") == strings.ReplaceAll(r.Host, ":3000", "")),
|
|
Data: page_data,
|
|
}
|
|
|
|
err := Templates.ExecuteTemplate(w, template, data)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
}
|
|
|
|
// for small refreshable templates within pages
|
|
// so no need for page things like title, desc, etc.
|
|
func RenderSub(
|
|
w http.ResponseWriter,
|
|
r *http.Request,
|
|
template string,
|
|
page_data interface{},
|
|
) {
|
|
w.WriteHeader(http.StatusOK)
|
|
|
|
err := Templates.ExecuteTemplate(w, template, page_data)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
}
|