aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2019-12-17 13:15:10 +0100
committerSimon Ser <contact@emersion.fr>2019-12-17 13:15:10 +0100
commit733304c88f51df710174fd74c86c24c79fcf5b47 (patch)
tree6601a19a461db282b87b6be20e4e6cd18aedcd98
parent38d73f57718e2990c411ad58a1e28c2adfd1ce1e (diff)
downloadalps-733304c88f51df710174fd74c86c24c79fcf5b47.tar.gz
alps-733304c88f51df710174fd74c86c24c79fcf5b47.zip
Allow Lua plugins to inject all templates
-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)