diff options
Diffstat (limited to 'src/Render/Templates.go')
| -rw-r--r-- | src/Render/Templates.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/Render/Templates.go b/src/Render/Templates.go index 544a2ac..ab24878 100644 --- a/src/Render/Templates.go +++ b/src/Render/Templates.go @@ -2,11 +2,16 @@ package render import ( "fmt" + "log/slog" + "net/http" "os" + "text/template" settings "physick.ru/Settings" ) +const indexTemplateName string = "index.html" + func getTemplateString(templName string) (string, error) { var fullPath = fmt.Sprintf("%s/%s", settings.Current.TemplatesLocation, templName) var file, fopenerr = os.ReadFile(fullPath) @@ -15,3 +20,31 @@ func getTemplateString(templName string) (string, error) { } return string(file), nil } + +func executeIndexTemplate(content IndexTemplateContents, w http.ResponseWriter) { + var indexTempl, readErr = getTemplateString(indexTemplateName) + if readErr != nil { + slog.Error("Failed to load template", slog.Any("Error", readErr)) + w.WriteHeader(http.StatusInternalServerError) + return + } + var templ, templErr = template.New("index").Parse(indexTempl) + if templErr != nil { + slog.Error("Failed to parse the template", slog.Any("Error", templErr)) + w.WriteHeader(http.StatusInternalServerError) + return + } + var err = templ.Execute(w, content) + if err != nil { + slog.Error("Failed to execute the template", slog.Any("Error", err)) + } +} + +func getTemplate(templName string) (string, error) { + var fullPath = fmt.Sprintf("%s/%s", settings.Current.ArticlesLocation, templName) + var file, fopenerr = os.ReadFile(fullPath) + if fopenerr != nil { + return "", fopenerr + } + return string(file), nil +} |
