Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0
Ce dépôt a été archivé le 2022-05-07. Vous pouvez voir ses fichiers ou le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre de changements.
nyaa-pantsu/router/template.go
Atvaark 0678d19097 Add template and db tests (#291)
- The db test will run an sqlite3 database in in-memory
  mode and run the automigrations.
- The template test will check if all the templates
  that are stored in package variables (template.Must)
  compile and if ReloadTemplates works without panicking.
2017-05-10 18:15:36 -05:00

94 lignes
2,2 Kio
Go

package router
import (
"html/template"
"path/filepath"
)
var TemplateDir = "templates"
var homeTemplate, searchTemplate, faqTemplate, uploadTemplate, viewTemplate, viewRegisterTemplate, viewLoginTemplate, viewRegisterSuccessTemplate, viewVerifySuccessTemplate, viewProfileTemplate, viewProfileEditTemplate, viewUserDeleteTemplate, notFoundTemplate *template.Template
type templateLoader struct {
templ **template.Template
file string
name string
}
// ReloadTemplates reloads templates on runtime
func ReloadTemplates() {
templs := []templateLoader{
templateLoader{
templ: &homeTemplate,
name: "home",
file: "home.html",
},
templateLoader{
templ: &searchTemplate,
name: "search",
file: "home.html",
},
templateLoader{
templ: &uploadTemplate,
name: "upload",
file: "upload.html",
},
templateLoader{
templ: &faqTemplate,
name: "FAQ",
file: "FAQ.html",
},
templateLoader{
templ: &viewTemplate,
name: "view",
file: "view.html",
},
templateLoader{
templ: &viewRegisterTemplate,
name: "user_register",
file: "user/register.html",
},
templateLoader{
templ: &viewRegisterSuccessTemplate,
name: "user_register_success",
file: "user/signup_success.html",
},
templateLoader{
templ: &viewVerifySuccessTemplate,
name: "user_verify_success",
file: "user/verify_success.html",
},
templateLoader{
templ: &viewLoginTemplate,
name: "user_login",
file: "user/login.html",
},
templateLoader{
templ: &viewProfileTemplate,
name: "user_profile",
file: "user/profile.html",
},
templateLoader{
templ: &viewProfileEditTemplate,
name: "user_profile",
file: "user/profile_edit.html",
},
templateLoader{
templ: &viewUserDeleteTemplate,
name: "user_delete",
file: "user/delete_success.html",
},
templateLoader{
templ: &notFoundTemplate,
name: "404",
file: "404.html",
},
}
for _, templ := range templs {
t := template.Must(template.New(templ.name).Funcs(FuncMap).ParseFiles(filepath.Join(TemplateDir, "index.html"), filepath.Join(TemplateDir, templ.file)))
t = template.Must(t.ParseGlob(filepath.Join(TemplateDir, "_*.html")))
*templ.templ = t
}
}