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) if fopenerr != nil { return "", fopenerr } 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 }