mirror of
https://github.com/kataras/iris.git
synced 2025-01-23 18:51:03 +01:00
ed33a77019
relative to: https://github.com/kataras/iris/issues/1723
53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"reflect"
|
|
"strings"
|
|
|
|
"github.com/kataras/iris/v12"
|
|
"github.com/kataras/iris/v12/view"
|
|
)
|
|
|
|
func main() {
|
|
tmpl := iris.Jet("./views", ".jet")
|
|
tmpl.Reload(true)
|
|
|
|
val := reflect.ValueOf(ViewBuiler{})
|
|
fns := val.Type()
|
|
for i := 0; i < fns.NumMethod(); i++ {
|
|
method := fns.Method(i)
|
|
tmpl.AddFunc(strings.ToLower(method.Name), val.Method(i).Interface())
|
|
}
|
|
|
|
app := iris.New()
|
|
app.RegisterView(tmpl)
|
|
|
|
app.Get("/", func(ctx iris.Context) {
|
|
ctx.View("index.jet")
|
|
})
|
|
|
|
app.Listen(":8080")
|
|
}
|
|
|
|
type ViewBuiler struct {
|
|
}
|
|
|
|
func (ViewBuiler) Asset(a view.JetArguments) reflect.Value {
|
|
path := a.Get(0).String()
|
|
// fmt.Println(os.Getenv("APP_URL"))
|
|
return reflect.ValueOf(path)
|
|
}
|
|
|
|
func (ViewBuiler) Style(a view.JetArguments) reflect.Value {
|
|
path := a.Get(0).String()
|
|
s := fmt.Sprintf(`<link href="%v" rel="stylesheet">`, path)
|
|
return reflect.ValueOf(s)
|
|
}
|
|
|
|
func (ViewBuiler) Script(a view.JetArguments) reflect.Value {
|
|
path := a.Get(0).String()
|
|
s := fmt.Sprintf(`<script src="%v"></script>`, path)
|
|
return reflect.ValueOf(s)
|
|
}
|