HTML template debug mode.
- theHTML templates are reloaded each time
This commit is contained in:
		
							
								
								
									
										4
									
								
								gin.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								gin.go
									
									
									
									
									
								
							@ -92,9 +92,13 @@ func (engine *Engine) LoadHTMLFiles(files ...string) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (engine *Engine) SetHTMLTemplate(templ *template.Template) {
 | 
					func (engine *Engine) SetHTMLTemplate(templ *template.Template) {
 | 
				
			||||||
 | 
						if gin_mode == debugCode {
 | 
				
			||||||
 | 
							engine.HTMLRender = render.HTMLDebug
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
		engine.HTMLRender = render.HTMLRender{
 | 
							engine.HTMLRender = render.HTMLRender{
 | 
				
			||||||
			Template: templ,
 | 
								Template: templ,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Adds handlers for NoRoute. It return a 404 code by default.
 | 
					// Adds handlers for NoRoute. It return a 404 code by default.
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,9 @@ type (
 | 
				
			|||||||
	// Redirects
 | 
						// Redirects
 | 
				
			||||||
	redirectRender struct{}
 | 
						redirectRender struct{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Redirects
 | 
				
			||||||
 | 
						htmlDebugRender struct{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// form binding
 | 
						// form binding
 | 
				
			||||||
	HTMLRender struct {
 | 
						HTMLRender struct {
 | 
				
			||||||
		Template *template.Template
 | 
							Template *template.Template
 | 
				
			||||||
@ -36,6 +39,7 @@ var (
 | 
				
			|||||||
	XML       = xmlRender{}
 | 
						XML       = xmlRender{}
 | 
				
			||||||
	Plain     = plainRender{}
 | 
						Plain     = plainRender{}
 | 
				
			||||||
	Redirect  = redirectRender{}
 | 
						Redirect  = redirectRender{}
 | 
				
			||||||
 | 
						HTMLDebug = htmlDebugRender{}
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func writeHeader(w http.ResponseWriter, code int, contentType string) {
 | 
					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])
 | 
						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 {
 | 
					func (_ plainRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
 | 
				
			||||||
	writeHeader(w, code, "text/plain")
 | 
						writeHeader(w, code, "text/plain")
 | 
				
			||||||
	format := data[0].(string)
 | 
						format := data[0].(string)
 | 
				
			||||||
@ -80,3 +77,17 @@ func (_ plainRender) Render(w http.ResponseWriter, code int, data ...interface{}
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return err
 | 
						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