/* GoToSocial Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package router import ( "fmt" "html/template" "os" "path/filepath" "github.com/gin-gonic/gin" "github.com/superseriousbusiness/gotosocial/internal/config" ) // loadTemplates loads html templates for use by the given engine func loadTemplates(cfg *config.Config, engine *gin.Engine) error { cwd, err := os.Getwd() if err != nil { return fmt.Errorf("error getting current working directory: %s", err) } tmPath := filepath.Join(cwd, fmt.Sprintf("%s*", cfg.TemplateConfig.BaseDir)) engine.LoadHTMLGlob(tmPath) return nil } func noescape(str string) template.HTML { return template.HTML(str) } func loadTemplateFunctions(engine *gin.Engine) { engine.SetFuncMap(template.FuncMap{ "noescape": noescape, }) }