2020-02-11 16:42:10 +00:00
|
|
|
# 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
|
2020-05-13 12:07:44 +00:00
|
|
|
`cmd/alps/main.go`.
|
2020-02-11 16:42:10 +00:00
|
|
|
|
|
|
|
## Lua plugins
|
|
|
|
|
|
|
|
The entry point is at `plugins/<name>/main.lua`.
|
|
|
|
|
|
|
|
API:
|
|
|
|
|
2020-05-13 12:07:44 +00:00
|
|
|
* `alps.on_render(name, f)`: prior to rendering the template `name`, call
|
2020-02-11 16:42:10 +00:00
|
|
|
`f` with the template data (the special name `*` matches all templates)
|
2020-05-13 12:07:44 +00:00
|
|
|
* `alps.set_filter(name, f)`: set a template function
|
|
|
|
* `alps.set_route(method, path, f)`: register a new HTTP route, `f` will be
|
2020-02-11 16:42:10 +00:00
|
|
|
called with the HTTP context
|