main.go 828 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package main
  2. import (
  3. "html/template"
  4. "io/ioutil"
  5. "net/http"
  6. "strings"
  7. "github.com/gin-gonic/gin"
  8. )
  9. func main() {
  10. r := gin.New()
  11. t, err := loadTemplate()
  12. if err != nil {
  13. panic(err)
  14. }
  15. r.SetHTMLTemplate(t)
  16. r.GET("/", func(c *gin.Context) {
  17. c.HTML(http.StatusOK, "/html/index.tmpl", gin.H{
  18. "Foo": "World",
  19. })
  20. })
  21. r.GET("/bar", func(c *gin.Context) {
  22. c.HTML(http.StatusOK, "/html/bar.tmpl", gin.H{
  23. "Bar": "World",
  24. })
  25. })
  26. r.Run(":8080")
  27. }
  28. func loadTemplate() (*template.Template, error) {
  29. t := template.New("")
  30. for name, file := range Assets.Files {
  31. if file.IsDir() || !strings.HasSuffix(name, ".tmpl") {
  32. continue
  33. }
  34. h, err := ioutil.ReadAll(file)
  35. if err != nil {
  36. return nil, err
  37. }
  38. t, err = t.New(name).Parse(string(h))
  39. if err != nil {
  40. return nil, err
  41. }
  42. }
  43. return t, nil
  44. }