By {{fullName author}}
+Comments
+ + {{#each comments}} +By {{fullName author}}
++ + Read more at: + https://github.com/aymerick/raymond and + https://handlebarsjs.com/guide + + +
diff --git a/_examples/README.md b/_examples/README.md index ed88f16c..8e152b12 100644 --- a/_examples/README.md +++ b/_examples/README.md @@ -120,7 +120,8 @@ * [Jet Embedded](view/template_jet_1_embedded) * [Jet 'urlpath' tmpl func](view/template_jet_2) * [Jet Template Funcs from Struct](view/template_jet_3) - - [Ace](view/template_ace_0) + * [Ace](view/template_ace_0) + * [Handlebars](view/template_handlebars_0) * Third-Parties * [Render `valyala/quicktemplate` templates](view/quicktemplate) * [Render `shiyanhui/hero` templates](view/herotemplate) diff --git a/_examples/view/overview/main.go b/_examples/view/overview/main.go index 8aeaabf1..caef76a6 100644 --- a/_examples/view/overview/main.go +++ b/_examples/view/overview/main.go @@ -12,26 +12,44 @@ func main() { // - {{ render_r "header.html" }} // partial relative path to current page // - {{ yield }} // - {{ current }} - app.RegisterView(iris.HTML("./templates", ".html")) + app.RegisterView(iris.HTML("./templates", ".html"). + Reload(true)) // Set Reload false to production. + app.Get("/", func(ctx iris.Context) { - ctx.CompressWriter(true) // enable compression based on Accept-Encoding (e.g. "gzip"). - ctx.ViewData("Name", "iris") // the .Name inside the ./templates/hi.html. - ctx.View("hi.html") // render the template with the file name relative to the './templates'. + // enable compression based on Accept-Encoding (e.g. "gzip"), + // alternatively: app.Use(iris.Compression). + ctx.CompressWriter(true) + // the .Name inside the ./templates/hi.html. + ctx.ViewData("Name", "iris") + // render the template with the file name relative to the './templates'. + ctx.View("hi.html") + }) + + app.Get("/example_map", func(ctx iris.Context) { + ctx.View("example.html", iris.Map{ + "Name": "Example Name", + "Age": 42, + "Items": []string{"Example slice entry 1", "entry 2", "entry 3"}, + "Map": iris.Map{"map key": "map value", "other key": "other value"}, + }) + }) + + app.Get("/example_struct", func(ctx iris.Context) { + var examplePage = struct { + Name string + Age int + Items []string + Map map[string]interface{} + }{ + "Example Name", + 42, + []string{"Example slice entry 1", "entry 2", "entry 3"}, + iris.Map{"map key": "map value", "other key": "other value"}, + } + + ctx.View("example.html", examplePage) }) // http://localhost:8080/ app.Listen(":8080") } - -/* -Note: - -In case you're wondering, the code behind the view engines derives from the "github.com/kataras/iris/v12/view" package, -access to the engines' variables can be granded by "github.com/kataras/iris/v12" package too. - - iris.HTML(...) is a shortcut of view.HTML(...) - iris.Django(...) >> >> view.Django(...) - iris.Pug(...) >> >> view.Pug(...) - iris.Handlebars(...) >> >> view.Handlebars(...) - iris.Amber(...) >> >> view.Amber(...) -*/ diff --git a/_examples/view/overview/templates/example.html b/_examples/view/overview/templates/example.html new file mode 100644 index 00000000..53725068 --- /dev/null +++ b/_examples/view/overview/templates/example.html @@ -0,0 +1,27 @@ + + +
+ + +