diff --git a/gin.go b/gin.go index b54dbd8a..618af206 100644 --- a/gin.go +++ b/gin.go @@ -7,6 +7,7 @@ package gin import ( "fmt" "html/template" + "io/fs" "net" "net/http" "os" @@ -267,6 +268,23 @@ func (engine *Engine) LoadHTMLFiles(files ...string) { engine.SetHTMLTemplate(templ) } + +// LoadHTMLFromFS loads HTML files identified by glob pattern +// from a filesytem interface and associates the result with HTML renderer. +func (engine *Engine) LoadHTMLFromFS(filesystem fs.FS, patterns ...string) { + left := engine.delims.Left + right := engine.delims.Right + templ := template.Must(template.New("").Delims(left, right).Funcs(engine.FuncMap).ParseFS(filesystem, patterns...)) + + if IsDebugging() { + debugPrintLoadTemplate(templ) + engine.HTMLRender = render.HTMLDebug{Glob: pattern, FuncMap: engine.FuncMap, Delims: engine.delims} + return + } + + engine.SetHTMLTemplate(templ) +} + // SetHTMLTemplate associate a template with HTML renderer. func (engine *Engine) SetHTMLTemplate(templ *template.Template) { if len(engine.trees) > 0 {