update
parent
33e556899b
commit
77be1d6ae3
|
@ -0,0 +1,102 @@
|
||||||
|
package engine
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"html/template"
|
||||||
|
"io"
|
||||||
|
"io/fs"
|
||||||
|
"path/filepath"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Engine struct {
|
||||||
|
name string
|
||||||
|
Template *template.Template
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(name string) *Engine {
|
||||||
|
Ename := "E" + name
|
||||||
|
if Ename == "E" {
|
||||||
|
Ename = "Engine"
|
||||||
|
}
|
||||||
|
return &Engine{Ename, template.New(name)}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Engine) Funcs(funcMap template.FuncMap) *Engine {
|
||||||
|
e.Template = e.Template.Funcs(funcMap)
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
func (e *Engine) Parse(text string) (*Engine, error) {
|
||||||
|
tmp, err := e.Template.Parse(text)
|
||||||
|
if err != nil {
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
e.Template = tmp
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
func (e *Engine) ParseFS(fs fs.FS, patterns ...string) (*Engine, error) {
|
||||||
|
tmp, err := e.Template.ParseFS(fs, patterns...)
|
||||||
|
if err != nil {
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
e.Template = tmp
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Engine) ParseFiles(filenames ...string) (*Engine, error) {
|
||||||
|
tmp, err := e.Template.ParseFiles(filenames...)
|
||||||
|
if err != nil {
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
e.Template = tmp
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Engine) ParseGlob(pattern string) (*Engine, error) {
|
||||||
|
tmp, err := e.Template.ParseGlob(pattern)
|
||||||
|
if err != nil {
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
e.Template = tmp
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Engine) OverrideGlob(pattern string) (*Engine, error) {
|
||||||
|
matches, _ := filepath.Glob(pattern)
|
||||||
|
if len(matches) <= 0 {
|
||||||
|
// surpass error if no tmpl found
|
||||||
|
return e, nil
|
||||||
|
}
|
||||||
|
tmp, err := e.Template.ParseGlob(pattern)
|
||||||
|
if err != nil {
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
e.Template = tmp
|
||||||
|
return e, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func Must(e *Engine, err error) *Engine {
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Engine) ExecuteTemplate(wr io.Writer, name string, data interface{}) error {
|
||||||
|
buf := &bytes.Buffer{}
|
||||||
|
err := e.Template.ExecuteTemplate(buf, name, data)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = wr.Write(buf.Bytes())
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Engine) Execute(wr io.Writer, data interface{}) error {
|
||||||
|
buf := &bytes.Buffer{}
|
||||||
|
err := e.Template.Execute(buf, data)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = wr.Write(buf.Bytes())
|
||||||
|
return err
|
||||||
|
}
|
2
go.mod
2
go.mod
|
@ -2,7 +2,7 @@ module kumoly.io/lib/ksrv
|
||||||
|
|
||||||
go 1.17
|
go 1.17
|
||||||
|
|
||||||
require kumoly.io/lib/klog v0.1.9
|
require kumoly.io/lib/klog v0.1.10
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||||
|
|
2
go.sum
2
go.sum
|
@ -6,3 +6,5 @@ kumoly.io/lib/klog v0.1.8 h1:CguIVyo2T/E2cdrc30mFh/KPhIiM/K2hNV8aR8KuSdw=
|
||||||
kumoly.io/lib/klog v0.1.8/go.mod h1:Snm+c1xRrh/RbXsxQf7UGYbAJGPcIa6bEEN+CmzJh7M=
|
kumoly.io/lib/klog v0.1.8/go.mod h1:Snm+c1xRrh/RbXsxQf7UGYbAJGPcIa6bEEN+CmzJh7M=
|
||||||
kumoly.io/lib/klog v0.1.9 h1:rS9PPqfyBIIfeQlPSuMv+7StGPiFVuAdp04HDwwDY3E=
|
kumoly.io/lib/klog v0.1.9 h1:rS9PPqfyBIIfeQlPSuMv+7StGPiFVuAdp04HDwwDY3E=
|
||||||
kumoly.io/lib/klog v0.1.9/go.mod h1:Snm+c1xRrh/RbXsxQf7UGYbAJGPcIa6bEEN+CmzJh7M=
|
kumoly.io/lib/klog v0.1.9/go.mod h1:Snm+c1xRrh/RbXsxQf7UGYbAJGPcIa6bEEN+CmzJh7M=
|
||||||
|
kumoly.io/lib/klog v0.1.10 h1:GJxwcsUct8nF3oHtsJPTIlPKTUeB/+7jsbgh3bMvKMc=
|
||||||
|
kumoly.io/lib/klog v0.1.10/go.mod h1:Snm+c1xRrh/RbXsxQf7UGYbAJGPcIa6bEEN+CmzJh7M=
|
||||||
|
|
Loading…
Reference in New Issue