Byte Template is a templating engine for byte slices with custom directives.
package main
import (
"bytes"
"fmt"
"github.com/jensneuse/byte-template"
"io"
)
func main() {
template := byte_template.New(byte_template.DirectiveDefinition{
Name:[]byte("toLower"),
Resolve:func(w io.Writer, arg []byte) (n int,err error) {
return w.Write(bytes.ToLower(arg))
},
})
buf := bytes.Buffer{}
_,_ = template.Execute(&buf,[]byte("/api/user/{{ toLower .name }}"),func(w io.Writer, path []byte) (n int,err error) {
if bytes.Equal(path,[]byte("name")){
_,err = w.Write([]byte("Jens"))
}
return
})
fmt.Println(buf.String()) // Output: jens
}
- Jens Neuse (Project Lead & Active Maintainer)
- Sergey Petrunin (Project Lead & Active Maintainer)