//setTemplate loads templates from rice box "views" func setTemplate(router *gin.Engine) { box := rice.MustFindBox("views") tmpl := template.New("").Funcs(template.FuncMap{ "isActive": helpers.IsActive, "stringInSlice": helpers.StringInSlice, "dateTime": helpers.DateTime, "recentPosts": helpers.RecentPosts, "tags": helpers.Tags, "archives": helpers.Archives, }) fn := func(path string, f os.FileInfo, err error) error { if f.IsDir() != true && strings.HasSuffix(f.Name(), ".html") { var err error tmpl, err = tmpl.Parse(box.MustString(path)) if err != nil { return err } } return nil } err := box.Walk("", fn) if err != nil { panic(err) } router.SetHTMLTemplate(tmpl) }
//TODO customize templates func loadHTMLGlob(r *gin.Engine, pattern string, templFunc func(*template.Template)) { if gin.IsDebugging() { if len(pattern) <= 0 { panic("the HTML debug render was created without files or glob pattern") } } templ := template.New("") templFunc(templ) templ = template.Must(templ.ParseGlob(pattern)) r.SetHTMLTemplate(templ) }
func LoadPage(parentRoute *gin.Engine) { //type Page struct { // Title string //} parentRoute.SetHTMLTemplate(template.Must(template.ParseFiles("frontend/canjs/templates/message.html", "frontend/canjs/templates/app.html", "frontend/canjs/templates/base.html", "frontend/canjs/templates/404.html"))) log.Debug("url : " + config.StaticUrl) log.Debug("guid : " + config.Guid) log.Debug("path : " + staticPath) parentRoute.Static(config.StaticUrl+"/"+config.Guid, staticPath) // route.ServeFiles doesn't exist in the current version of gin. If you want to use this, use the 59d949d35080b83864dbeafadecef112d46aaeee. //parentRoute.ServeFiles(config.StaticUrl+"/"+config.Guid+"/*filepath", http.Dir(staticPath)) parentRoute.NoRoute(func(c *gin.Context) { c.HTML(404, "404.html", map[string]string{"language": config.DefaultLanguage, "title": config.Title}) }) route.Route(parentRoute.Group("")) }