HTML template debug mode.
- theHTML templates are reloaded each time
This commit is contained in:
		
							
								
								
									
										8
									
								
								gin.go
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								gin.go
									
									
									
									
									
								
							@ -92,8 +92,12 @@ func (engine *Engine) LoadHTMLFiles(files ...string) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (engine *Engine) SetHTMLTemplate(templ *template.Template) {
 | 
			
		||||
	engine.HTMLRender = render.HTMLRender{
 | 
			
		||||
		Template: templ,
 | 
			
		||||
	if gin_mode == debugCode {
 | 
			
		||||
		engine.HTMLRender = render.HTMLDebug
 | 
			
		||||
	} else {
 | 
			
		||||
		engine.HTMLRender = render.HTMLRender{
 | 
			
		||||
			Template: templ,
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -25,6 +25,9 @@ type (
 | 
			
		||||
	// Redirects
 | 
			
		||||
	redirectRender struct{}
 | 
			
		||||
 | 
			
		||||
	// Redirects
 | 
			
		||||
	htmlDebugRender struct{}
 | 
			
		||||
 | 
			
		||||
	// form binding
 | 
			
		||||
	HTMLRender struct {
 | 
			
		||||
		Template *template.Template
 | 
			
		||||
@ -32,10 +35,11 @@ type (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	JSON     = jsonRender{}
 | 
			
		||||
	XML      = xmlRender{}
 | 
			
		||||
	Plain    = plainRender{}
 | 
			
		||||
	Redirect = redirectRender{}
 | 
			
		||||
	JSON      = jsonRender{}
 | 
			
		||||
	XML       = xmlRender{}
 | 
			
		||||
	Plain     = plainRender{}
 | 
			
		||||
	Redirect  = redirectRender{}
 | 
			
		||||
	HTMLDebug = htmlDebugRender{}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func writeHeader(w http.ResponseWriter, code int, contentType string) {
 | 
			
		||||
@ -61,13 +65,6 @@ func (_ xmlRender) Render(w http.ResponseWriter, code int, data ...interface{})
 | 
			
		||||
	return encoder.Encode(data[0])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (html HTMLRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
 | 
			
		||||
	writeHeader(w, code, "text/html")
 | 
			
		||||
	file := data[0].(string)
 | 
			
		||||
	obj := data[1]
 | 
			
		||||
	return html.Template.ExecuteTemplate(w, file, obj)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (_ plainRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
 | 
			
		||||
	writeHeader(w, code, "text/plain")
 | 
			
		||||
	format := data[0].(string)
 | 
			
		||||
@ -80,3 +77,17 @@ func (_ plainRender) Render(w http.ResponseWriter, code int, data ...interface{}
 | 
			
		||||
	}
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (_ htmlDebugRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
 | 
			
		||||
	writeHeader(w, code, "text/html")
 | 
			
		||||
	file := data[0].(string)
 | 
			
		||||
	obj := data[1]
 | 
			
		||||
	return template.New(file).Execute(w, obj)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (html HTMLRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
 | 
			
		||||
	writeHeader(w, code, "text/html")
 | 
			
		||||
	file := data[0].(string)
 | 
			
		||||
	obj := data[1]
 | 
			
		||||
	return html.Template.ExecuteTemplate(w, file, obj)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user