Documentation ¶
Index ¶
- Constants
- type AmberEngine
- func (s *AmberEngine) AddFunc(funcName string, funcBody interface{})
- func (s *AmberEngine) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) *AmberEngine
- func (s *AmberEngine) ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error
- func (s *AmberEngine) Ext() string
- func (s *AmberEngine) Load() error
- func (s *AmberEngine) Reload(developmentMode bool) *AmberEngine
- type DjangoEngine
- func (s *DjangoEngine) AddFilter(filterName string, filterBody FilterFunction) *DjangoEngine
- func (s *DjangoEngine) AddFunc(funcName string, funcBody interface{})
- func (s *DjangoEngine) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) *DjangoEngine
- func (s *DjangoEngine) ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error
- func (s *DjangoEngine) Ext() string
- func (s *DjangoEngine) Load() error
- func (s *DjangoEngine) RegisterFilter(filterName string, filterBody FilterFunction) *DjangoEngine
- func (s *DjangoEngine) RegisterTag(tagName string, parserFn TagParser) error
- func (s *DjangoEngine) Reload(developmentMode bool) *DjangoEngine
- type Engine
- type EngineFuncer
- type Error
- type FilterFunction
- type HTMLEngine
- func (s *HTMLEngine) AddFunc(funcName string, funcBody interface{})
- func (s *HTMLEngine) AddLayoutFunc(funcName string, funcBody interface{}) *HTMLEngine
- func (s *HTMLEngine) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) *HTMLEngine
- func (s *HTMLEngine) Delims(left, right string) *HTMLEngine
- func (s *HTMLEngine) ExecuteWriter(w io.Writer, name string, layout string, bindingData interface{}) error
- func (s *HTMLEngine) Ext() string
- func (s *HTMLEngine) Layout(layoutFile string) *HTMLEngine
- func (s *HTMLEngine) Load() error
- func (s *HTMLEngine) Option(opt ...string) *HTMLEngine
- func (s *HTMLEngine) Reload(developmentMode bool) *HTMLEngine
- type HandlebarsEngine
- func (s *HandlebarsEngine) AddFunc(funcName string, funcBody interface{})
- func (s *HandlebarsEngine) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) *HandlebarsEngine
- func (s *HandlebarsEngine) ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error
- func (s *HandlebarsEngine) Ext() string
- func (s *HandlebarsEngine) Layout(layoutFile string) *HandlebarsEngine
- func (s *HandlebarsEngine) Load() error
- func (s *HandlebarsEngine) Reload(developmentMode bool) *HandlebarsEngine
- type INodeTag
- type Parser
- type TagParser
- type Token
- type Value
- type View
Constants ¶
const NoLayout = "iris.nolayout"
NoLayout disables the configuration's layout for a specific execution.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AmberEngine ¶
type AmberEngine struct {
// contains filtered or unexported fields
}
AmberEngine contains the amber view engine structure.
func Amber ¶
func Amber(directory, extension string) *AmberEngine
Amber creates and returns a new amber view engine.
func (*AmberEngine) AddFunc ¶
func (s *AmberEngine) AddFunc(funcName string, funcBody interface{})
AddFunc adds the function to the template's function map. It is legal to overwrite elements of the default actions: - url func(routeName string, args ...string) string - urlpath func(routeName string, args ...string) string - render func(fullPartialName string) (template.HTML, error).
func (*AmberEngine) Binary ¶
func (s *AmberEngine) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) *AmberEngine
Binary optionally, use it when template files are distributed inside the app executable (.go generated files).
The assetFn and namesFn can come from the go-bindata library.
func (*AmberEngine) ExecuteWriter ¶
func (s *AmberEngine) ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error
ExecuteWriter executes a template and writes its result to the w writer. layout here is useless.
func (*AmberEngine) Ext ¶
func (s *AmberEngine) Ext() string
Ext returns the file extension which this view engine is responsible to render.
func (*AmberEngine) Load ¶
func (s *AmberEngine) Load() error
Load parses the templates to the engine. It's alos responsible to add the necessary global functions.
Returns an error if something bad happens, user is responsible to catch it.
func (*AmberEngine) Reload ¶
func (s *AmberEngine) Reload(developmentMode bool) *AmberEngine
Reload if setted to true the templates are reloading on each render, use it when you're in development and you're boring of restarting the whole app when you edit a template file.
Note that if `true` is passed then only one `View -> ExecuteWriter` will be render each time, no concurrent access across clients, use it only on development status. It's good to be used side by side with the https://github.com/kataras/rizla reloader for go source files.
type DjangoEngine ¶
type DjangoEngine struct {
// contains filtered or unexported fields
}
DjangoEngine contains the amber view engine structure.
func Django ¶
func Django(directory, extension string) *DjangoEngine
Django creates and returns a new amber view engine.
func (*DjangoEngine) AddFilter ¶
func (s *DjangoEngine) AddFilter(filterName string, filterBody FilterFunction) *DjangoEngine
AddFilter registers a new filter. If there's already a filter with the same name, RegisterFilter will panic. You usually want to call this function in the filter's init() function: http://golang.org/doc/effective_go.html#init
Same as `RegisterFilter`.
func (*DjangoEngine) AddFunc ¶
func (s *DjangoEngine) AddFunc(funcName string, funcBody interface{})
AddFunc adds the function to the template's Globals. It is legal to overwrite elements of the default actions: - url func(routeName string, args ...string) string - urlpath func(routeName string, args ...string) string - render func(fullPartialName string) (template.HTML, error).
func (*DjangoEngine) Binary ¶
func (s *DjangoEngine) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) *DjangoEngine
Binary optionally, use it when template files are distributed inside the app executable (.go generated files).
The assetFn and namesFn can come from the go-bindata library.
func (*DjangoEngine) ExecuteWriter ¶
func (s *DjangoEngine) ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error
ExecuteWriter executes a templates and write its results to the w writer layout here is useless.
func (*DjangoEngine) Ext ¶
func (s *DjangoEngine) Ext() string
Ext returns the file extension which this view engine is responsible to render.
func (*DjangoEngine) Load ¶
func (s *DjangoEngine) Load() error
Load parses the templates to the engine. It's alos responsible to add the necessary global functions.
Returns an error if something bad happens, user is responsible to catch it.
func (*DjangoEngine) RegisterFilter ¶
func (s *DjangoEngine) RegisterFilter(filterName string, filterBody FilterFunction) *DjangoEngine
RegisterFilter registers a new filter. If there's already a filter with the same name, RegisterFilter will panic. You usually want to call this function in the filter's init() function: http://golang.org/doc/effective_go.html#init
See http://www.florian-schlachter.de/post/pongo2/ for more about writing filters and tags.
func (*DjangoEngine) RegisterTag ¶
func (s *DjangoEngine) RegisterTag(tagName string, parserFn TagParser) error
RegisterTag registers a new tag. You usually want to call this function in the tag's init() function: http://golang.org/doc/effective_go.html#init
See http://www.florian-schlachter.de/post/pongo2/ for more about writing filters and tags.
func (*DjangoEngine) Reload ¶
func (s *DjangoEngine) Reload(developmentMode bool) *DjangoEngine
Reload if setted to true the templates are reloading on each render, use it when you're in development and you're boring of restarting the whole app when you edit a template file.
Note that if `true` is passed then only one `View -> ExecuteWriter` will be render each time, no concurrent access across clients, use it only on development status. It's good to be used side by side with the https://github.com/kataras/rizla reloader for go source files.
type Engine ¶
type Engine interface { // Load should load the templates from a directory of by binary(assets/go-bindata). Load() error // ExecuteWriter should execute a template by its filename with an optional layout and bindingData. ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error // Ext should return the final file extension which this view engine is responsible to render. Ext() string }
Engine is the interface which all view engines should be implemented in order to be registered inside iris.
type EngineFuncer ¶
type EngineFuncer interface { // AddFunc should adds a function to the template's function map. AddFunc(funcName string, funcBody interface{}) }
EngineFuncer is an addition of a view engine, if a view engine implements that interface then iris can add some closed-relative iris functions like {{ urlpath }} and {{ urlpath }}.
type FilterFunction ¶
FilterFunction conversion for pongo2.FilterFunction
type HTMLEngine ¶
HTMLEngine contains the html view engine structure.
func HTML ¶
func HTML(directory, extension string) *HTMLEngine
HTML creates and returns a new html view engine. The html engine used like the "html/template" standard go package but with a lot of extra features.
func Pug ¶
func Pug(directory, extension string) *HTMLEngine
Pug (or Jade) returns a new pug view engine. It shares the same exactly logic with the html view engine, it uses the same exactly configuration. It has got some features and a lot of functions which will make your life easier. Read more about the Jade Go Template: https://github.com/Joker/jade
Examples: https://github.com/hidevopsio/iris/tree/master/_examples/view/template_pug_0 https://github.com/hidevopsio/iris/tree/master/_examples/view/template_pug_1 https://github.com/hidevopsio/iris/tree/master/_examples/view/template_pug_2 https://github.com/hidevopsio/iris/tree/master/_examples/view/template_pug_3
func (*HTMLEngine) AddFunc ¶
func (s *HTMLEngine) AddFunc(funcName string, funcBody interface{})
AddFunc adds the function to the template's function map. It is legal to overwrite elements of the default actions: - url func(routeName string, args ...string) string - urlpath func(routeName string, args ...string) string - render func(fullPartialName string) (template.HTML, error).
func (*HTMLEngine) AddLayoutFunc ¶
func (s *HTMLEngine) AddLayoutFunc(funcName string, funcBody interface{}) *HTMLEngine
AddLayoutFunc adds the function to the template's layout-only function map. It is legal to overwrite elements of the default layout actions: - yield func() (template.HTML, error) - current func() (string, error) - partial func(partialName string) (template.HTML, error) - partial_r func(partialName string) (template.HTML, error) - render func(fullPartialName string) (template.HTML, error).
func (*HTMLEngine) Binary ¶
func (s *HTMLEngine) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) *HTMLEngine
Binary optionally, use it when template files are distributed inside the app executable (.go generated files).
The assetFn and namesFn can come from the go-bindata library.
func (*HTMLEngine) Delims ¶
func (s *HTMLEngine) Delims(left, right string) *HTMLEngine
Delims sets the action delimiters to the specified strings, to be used in subsequent calls to Parse, ParseFiles, or ParseGlob. Nested template definitions will inherit the settings. An empty delimiter stands for the corresponding default: {{ or }}.
func (*HTMLEngine) ExecuteWriter ¶
func (s *HTMLEngine) ExecuteWriter(w io.Writer, name string, layout string, bindingData interface{}) error
ExecuteWriter executes a template and writes its result to the w writer.
func (*HTMLEngine) Ext ¶
func (s *HTMLEngine) Ext() string
Ext returns the file extension which this view engine is responsible to render.
func (*HTMLEngine) Layout ¶
func (s *HTMLEngine) Layout(layoutFile string) *HTMLEngine
Layout sets the layout template file which inside should use the {{ yield }} func to yield the main template file and optionally {{partial/partial_r/render}} to render other template files like headers and footers
The 'tmplLayoutFile' is a relative path of the templates base directory, for the template file with its extension.
Example: HTML("./templates", ".html").Layout("layouts/mainLayout.html")
// mainLayout.html is inside: "./templates/layouts/".
Note: Layout can be changed for a specific call action with the option: "layout" on the iris' context.Render function.
func (*HTMLEngine) Load ¶
func (s *HTMLEngine) Load() error
Load parses the templates to the engine. It's also responsible to add the necessary global functions.
Returns an error if something bad happens, user is responsible to catch it.
func (*HTMLEngine) Option ¶
func (s *HTMLEngine) Option(opt ...string) *HTMLEngine
Option sets options for the template. Options are described by strings, either a simple string or "key=value". There can be at most one equals sign in an option string. If the option string is unrecognized or otherwise invalid, Option panics.
Known options:
missingkey: Control the behavior during execution if a map is indexed with a key that is not present in the map.
"missingkey=default" or "missingkey=invalid" The default behavior: Do nothing and continue execution. If printed, the result of the index operation is the string "<no value>". "missingkey=zero" The operation returns the zero value for the map type's element. "missingkey=error" Execution stops immediately with an error.
func (*HTMLEngine) Reload ¶
func (s *HTMLEngine) Reload(developmentMode bool) *HTMLEngine
Reload if setted to true the templates are reloading on each render, use it when you're in development and you're boring of restarting the whole app when you edit a template file.
Note that if `true` is passed then only one `View -> ExecuteWriter` will be render each time, no concurrent access across clients, use it only on development status. It's good to be used side by side with the https://github.com/kataras/rizla reloader for go source files.
type HandlebarsEngine ¶
type HandlebarsEngine struct {
// contains filtered or unexported fields
}
HandlebarsEngine contains the handlebars view engine structure.
func Handlebars ¶
func Handlebars(directory, extension string) *HandlebarsEngine
Handlebars creates and returns a new handlebars view engine.
func (*HandlebarsEngine) AddFunc ¶
func (s *HandlebarsEngine) AddFunc(funcName string, funcBody interface{})
AddFunc adds the function to the template's function map. It is legal to overwrite elements of the default actions: - url func(routeName string, args ...string) string - urlpath func(routeName string, args ...string) string - render func(fullPartialName string) (raymond.HTML, error).
func (*HandlebarsEngine) Binary ¶
func (s *HandlebarsEngine) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) *HandlebarsEngine
Binary optionally, use it when template files are distributed inside the app executable (.go generated files).
The assetFn and namesFn can come from the go-bindata library.
func (*HandlebarsEngine) ExecuteWriter ¶
func (s *HandlebarsEngine) ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error
ExecuteWriter executes a template and writes its result to the w writer.
func (*HandlebarsEngine) Ext ¶
func (s *HandlebarsEngine) Ext() string
Ext returns the file extension which this view engine is responsible to render.
func (*HandlebarsEngine) Layout ¶
func (s *HandlebarsEngine) Layout(layoutFile string) *HandlebarsEngine
Layout sets the layout template file which should use the {{ yield }} func to yield the main template file and optionally {{partial/partial_r/render}} to render other template files like headers and footers.
func (*HandlebarsEngine) Load ¶
func (s *HandlebarsEngine) Load() error
Load parses the templates to the engine. It's alos responsible to add the necessary global functions.
Returns an error if something bad happens, user is responsible to catch it.
func (*HandlebarsEngine) Reload ¶
func (s *HandlebarsEngine) Reload(developmentMode bool) *HandlebarsEngine
Reload if setted to true the templates are reloading on each render, use it when you're in development and you're boring of restarting the whole app when you edit a template file.
Note that if `true` is passed then only one `View -> ExecuteWriter` will be render each time, no concurrent access across clients, use it only on development status. It's good to be used side by side with the https://github.com/kataras/rizla reloader for go source files.
type TagParser ¶
TagParser the function signature of the tag's parser you will have to implement in order to create a new tag.
'doc' is providing access to the whole document while 'arguments' is providing access to the user's arguments to the tag:
{% your_tag_name some "arguments" 123 %}
start_token will be the *Token with the tag's name in it (here: your_tag_name).
Please see the Parser documentation on how to use the parser. See `RegisterTag` for more information about writing a tag as well.
type Value ¶
Value conversion for pongo2.Value
func AsSafeValue ¶
func AsSafeValue(i interface{}) *Value
AsSafeValue works like AsValue, but does not apply the 'escape' filter.
type View ¶
type View struct {
// contains filtered or unexported fields
}
View is responsible to load the correct templates for each of the registered view engines.
func (*View) AddFunc ¶
AddFunc adds a function to all registered engines. Each template engine that supports functions has its own AddFunc too.
func (*View) ExecuteWriter ¶
func (v *View) ExecuteWriter(w io.Writer, filename string, layout string, bindingData interface{}) error
ExecuteWriter calls the correct view Engine's ExecuteWriter func
func (*View) Find ¶
Find receives a filename, gets its extension and returns the view engine responsible for that file extension