...

Source file src/github.com/gin-gonic/contrib/renders/multitemplate/multitemplate.go

Documentation: github.com/gin-gonic/contrib/renders/multitemplate

     1  package multitemplate
     2  
     3  import (
     4  	"html/template"
     5  
     6  	"github.com/gin-gonic/gin/render"
     7  )
     8  
     9  type Render map[string]*template.Template
    10  
    11  var _ render.HTMLRender = Render{}
    12  
    13  func New() Render {
    14  	return make(Render)
    15  }
    16  
    17  func (r Render) Add(name string, tmpl *template.Template) {
    18  	if tmpl == nil {
    19  		panic("template can not be nil")
    20  	}
    21  	if len(name) == 0 {
    22  		panic("template name cannot be empty")
    23  	}
    24  	r[name] = tmpl
    25  }
    26  
    27  func (r Render) AddFromFiles(name string, files ...string) *template.Template {
    28  	tmpl := template.Must(template.ParseFiles(files...))
    29  	r.Add(name, tmpl)
    30  	return tmpl
    31  }
    32  
    33  func (r Render) AddFromGlob(name, glob string) *template.Template {
    34  	tmpl := template.Must(template.ParseGlob(glob))
    35  	r.Add(name, tmpl)
    36  	return tmpl
    37  }
    38  
    39  func (r *Render) AddFromString(name, templateString string) *template.Template {
    40  	tmpl := template.Must(template.New("").Parse(templateString))
    41  	r.Add(name, tmpl)
    42  	return tmpl
    43  }
    44  
    45  func (r Render) Instance(name string, data interface{}) render.Render {
    46  	return render.HTML{
    47  		Template: r[name],
    48  		Data:     data,
    49  	}
    50  }
    51  

View as plain text