Advertisement
Guest User

Untitled

a guest
Mar 13th, 2017
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.90 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "bytes"
  5.     "fmt"
  6.     "html/template"
  7.     "log"
  8. )
  9.  
  10. type Data struct {
  11.     Name string
  12. }
  13.  
  14. func main() {
  15.  
  16.     var tmpl *template.Template
  17.     funcMap := template.FuncMap{
  18.         "executeIfExists": func(name string, data interface{}) template.HTML {
  19.             t := tmpl.Lookup(name)
  20.             if t == nil {
  21.                 return ""
  22.             } else {
  23.                 buf := bytes.NewBuffer([]byte{})
  24.                 err := t.Execute(buf, data)
  25.                 if err != nil {
  26.                     log.Printf("Error executing template '%s': %v", name, err)
  27.                     return ""
  28.                 } else {
  29.                     return template.HTML(buf.Bytes())
  30.                 }
  31.             }
  32.         },
  33.     }
  34.  
  35.     tmpl = template.Must(template.New("").Funcs(funcMap).ParseFiles("templates/main.tmpl", "templates/content.tmpl"))
  36.  
  37.     data := Data{
  38.         Name: "John",
  39.     }
  40.  
  41.     buf := bytes.NewBuffer([]byte{})
  42.     err := tmpl.ExecuteTemplate(buf, "main.tmpl", data)
  43.     if err != nil {
  44.         log.Fatal(err)
  45.     }
  46.  
  47.     fmt.Println(string(buf.Bytes()))
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement