Embed static and templates folder when compiling, RenderTemplate now renders and serves from the embedded filesystem
This commit is contained in:
		@@ -7,11 +7,39 @@ import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RenderTemplate renders and serves a template from the embedded filesystem optionally with given data
 | 
			
		||||
func RenderTemplate(app *app.App, w http.ResponseWriter, contentPath string, data any) {
 | 
			
		||||
	templatePath := app.Config.Template.BaseName
 | 
			
		||||
 | 
			
		||||
	t, _ := template.ParseFiles(templatePath, contentPath)
 | 
			
		||||
	err := t.Execute(w, data)
 | 
			
		||||
	templateContent, err := app.Res.ReadFile(templatePath)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		http.Error(w, err.Error(), 500)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	t, err := template.New(templatePath).Parse(string(templateContent))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		http.Error(w, err.Error(), 500)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	content, err := app.Res.ReadFile(contentPath)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		http.Error(w, err.Error(), 500)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	t, err = t.Parse(string(content))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		http.Error(w, err.Error(), 500)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err = t.Execute(w, data)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
		http.Error(w, err.Error(), 500)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user