diff options
author | Simon Ser <contact@emersion.fr> | 2020-02-11 17:42:10 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-02-11 17:42:10 +0100 |
commit | 0a56365672dab47d27a57d703aeb33477c60b10c (patch) | |
tree | 94de7fdade68804285db7c4beb2e4fabb2e20550 /docs | |
parent | 02b59bc3650bab684f4661f7a75b96f19c6fa87b (diff) | |
download | alps-0a56365672dab47d27a57d703aeb33477c60b10c.tar.gz alps-0a56365672dab47d27a57d703aeb33477c60b10c.zip |
docs/themes-and-plugins: extract from README
Diffstat (limited to 'docs')
-rw-r--r-- | docs/themes-and-plugins.md | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/docs/themes-and-plugins.md b/docs/themes-and-plugins.md new file mode 100644 index 0000000..1d793f8 --- /dev/null +++ b/docs/themes-and-plugins.md @@ -0,0 +1,32 @@ +# Themes + +They should be put in `themes/<name>/`. + +Templates in `themes/<name>/*.html` override default templates in plugins. +Assets in `themes/<name>/assets/*` are served by the HTTP server at +`/themes/<name>/assets/*`. + +# Plugins + +Plugins can be written in Go or in Lua and live in `plugins/<name>/`. + +Plugins can provide their own templates in `plugins/<name>/public/*.html`. +Assets in `plugins/<name>/public/assets/*` are served by the HTTP server at +`/plugins/<name>/assets/*`. + +## Go plugins + +They can use the [Go plugin helpers] and need to be included at compile-time in +`cmd/koushin/main.go`. + +## Lua plugins + +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 (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 |