From ea589b1276f37d1dcdc707c94b963b4c29e14534 Mon Sep 17 00:00:00 2001 From: "Gerasimos (Makis) Maropoulos" Date: Sat, 8 Feb 2020 13:41:09 +0200 Subject: [PATCH] minor Former-commit-id: 491a1001aff9fc63a0d79efbfee6a78ca711f07c --- _examples/README.md | 2 + _examples/docker/Dockerfile | 4 +- _examples/docker/go.mod | 1 + _examples/view/template_jet_3/main.go | 55 +++++++++++++++++++ _examples/view/template_jet_3/views/index.jet | 5 ++ 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 _examples/view/template_jet_3/main.go create mode 100644 _examples/view/template_jet_3/views/index.jet diff --git a/_examples/README.md b/_examples/README.md index d2333e4e..fe2df2d8 100644 --- a/_examples/README.md +++ b/_examples/README.md @@ -199,6 +199,8 @@ Navigate through examples for a better understanding. - [Pug (Jade) Extends`](view/template_pug_3) - [Jet](/view/template_jet_0) - [Jet Embedded](view/template_jet_1_embedded) +- [Jet 'urlpath' tmpl func](/view/template_jet_2) +- [Jet template funcs from structure](/view/template_jet_3) You can serve [quicktemplate](https://github.com/valyala/quicktemplate) and [hero templates](https://github.com/shiyanhui/hero/hero) files too, simply by using the `context#ResponseWriter`, take a look at the [http_responsewriter/quicktemplate](http_responsewriter/quicktemplate) and [http_responsewriter/herotemplate](http_responsewriter/herotemplate) examples. diff --git a/_examples/docker/Dockerfile b/_examples/docker/Dockerfile index 0d1e0227..09daa324 100644 --- a/_examples/docker/Dockerfile +++ b/_examples/docker/Dockerfile @@ -7,7 +7,9 @@ ENV GO111MODULE=on \ GOOS=linux \ GOARCH=amd64 WORKDIR /go/src/app -COPY . /go/src/app +COPY go.mod . +RUN go mod download +COPY . . RUN go install FROM scratch diff --git a/_examples/docker/go.mod b/_examples/docker/go.mod index 0e122131..b9e400d0 100644 --- a/_examples/docker/go.mod +++ b/_examples/docker/go.mod @@ -4,4 +4,5 @@ go 1.13 require ( github.com/kataras/iris/v12 v12.1.6 + github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect ) diff --git a/_examples/view/template_jet_3/main.go b/_examples/view/template_jet_3/main.go new file mode 100644 index 00000000..6c67b4cc --- /dev/null +++ b/_examples/view/template_jet_3/main.go @@ -0,0 +1,55 @@ +package main + +import ( + "fmt" + "reflect" + "strings" + + "github.com/kataras/iris/v12" + "github.com/kataras/iris/v12/view" +) + +// https://github.com/kataras/iris/issues/1443 + +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.Run(iris.Addr(":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(` `, path) + return reflect.ValueOf(s) +} + +func (ViewBuiler) Script(a view.JetArguments) reflect.Value { + path := a.Get(0).String() + s := fmt.Sprintf(``, path) + return reflect.ValueOf(s) +} diff --git a/_examples/view/template_jet_3/views/index.jet b/_examples/view/template_jet_3/views/index.jet new file mode 100644 index 00000000..bfb1e3fa --- /dev/null +++ b/_examples/view/template_jet_3/views/index.jet @@ -0,0 +1,5 @@ +{{ asset("./myasset.mp3")}} +
+{{ style("my-stle.css")}} +
+{{ script("my-script.js")}} \ No newline at end of file