github.com/bingoohuang/gg@v0.0.0-20240325092523-45da7dee9335/pkg/emb/ui.go (about)

     1  package emb
     2  
     3  import (
     4  	"embed"
     5  	"fmt"
     6  	"io/fs"
     7  	"strings"
     8  	"text/template"
     9  )
    10  
    11  func ParseUI(web embed.FS, subName string, funcs template.FuncMap, asTemplate bool) (sub fs.FS, t *template.Template, err error) {
    12  	sub = web
    13  	subName = strings.Trim(subName, "/")
    14  	if subName != "" {
    15  		if sub, err = fs.Sub(web, subName); err != nil {
    16  			err = fmt.Errorf("sub %s: %w", subName, err)
    17  			return
    18  		}
    19  	}
    20  
    21  	if asTemplate {
    22  		t, err = template.New("").Funcs(funcs).ParseFS(sub, "*.html")
    23  		if err != nil {
    24  			err = fmt.Errorf("parse web template: %w", err)
    25  		}
    26  	}
    27  
    28  	return
    29  }