Allow Lua plugins to inject all templates
This commit is contained in:
parent
38d73f5771
commit
733304c88f
2 changed files with 9 additions and 2 deletions
|
@ -36,7 +36,7 @@ The entry point is at `plugins/<name>/main.lua`.
|
||||||
API:
|
API:
|
||||||
|
|
||||||
* `koushin.on_render(name, f)`: prior to rendering the template `name`, call
|
* `koushin.on_render(name, f)`: prior to rendering the template `name`, call
|
||||||
`f` with the template data
|
`f` with the template data (the special name `*` matches all templates)
|
||||||
* `koushin.set_filter(name, f)`: set a template function
|
* `koushin.set_filter(name, f)`: set a template function
|
||||||
* `koushin.set_route(method, path, f)`: register a new HTTP route, `f` will be
|
* `koushin.set_route(method, path, f)`: register a new HTTP route, `f` will be
|
||||||
called with the HTTP context
|
called with the HTTP context
|
||||||
|
|
|
@ -68,7 +68,7 @@ func (p *luaPlugin) setRoute(l *lua.LState) int {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *luaPlugin) Inject(name string, data interface{}) error {
|
func (p *luaPlugin) inject(name string, data interface{}) error {
|
||||||
f, ok := p.renderCallbacks[name]
|
f, ok := p.renderCallbacks[name]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
|
@ -86,6 +86,13 @@ func (p *luaPlugin) Inject(name string, data interface{}) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *luaPlugin) Inject(name string, data interface{}) error {
|
||||||
|
if err := p.inject("*", data); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return p.inject(name, data)
|
||||||
|
}
|
||||||
|
|
||||||
func (p *luaPlugin) LoadTemplate(t *template.Template) error {
|
func (p *luaPlugin) LoadTemplate(t *template.Template) error {
|
||||||
t.Funcs(p.filters)
|
t.Funcs(p.filters)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue