aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--plugin_lua.go9
2 files changed, 9 insertions, 2 deletions
diff --git a/README.md b/README.md
index e5fb1d5..847298b 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ The entry point is at `plugins/<name>/main.lua`.
API:
* `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_route(method, path, f)`: register a new HTTP route, `f` will be
called with the HTTP context
diff --git a/plugin_lua.go b/plugin_lua.go
index b02752d..638f17c 100644
--- a/plugin_lua.go
+++ b/plugin_lua.go
@@ -68,7 +68,7 @@ func (p *luaPlugin) setRoute(l *lua.LState) int {
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]
if !ok {
return nil
@@ -86,6 +86,13 @@ func (p *luaPlugin) Inject(name string, data interface{}) error {
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 {
t.Funcs(p.filters)