alps/README.md

68 lines
1.8 KiB
Markdown
Raw Normal View History

2019-12-02 14:31:00 +00:00
# koushin
2019-12-11 13:05:16 +00:00
[![GoDoc](https://godoc.org/git.sr.ht/~emersion/koushin?status.svg)](https://godoc.org/git.sr.ht/~emersion/koushin)
2019-12-02 14:31:00 +00:00
## Usage
Assuming SRV DNS records are properly set up (see [RFC 6186]):
go run example.org
To manually specify upstream servers:
2019-12-03 14:21:59 +00:00
go run ./cmd/koushin imaps://mail.example.org:993 smtps://mail.example.org:465
2019-12-02 14:31:00 +00:00
See `-h` for more information.
## 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/*`.
2019-12-09 15:02:12 +00:00
## Plugins
2019-12-17 09:58:31 +00:00
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`.
2019-12-09 15:02:12 +00:00
2019-12-09 16:55:52 +00:00
API:
* `koushin.on_render(name, f)`: prior to rendering the template `name`, call
`f` with the template data (the special name `*` matches all templates)
2019-12-09 16:55:52 +00:00
* `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
2019-12-09 15:02:12 +00:00
2020-01-08 11:01:48 +00:00
## Hot reload
Lua plugins and templates can be reloaded by sending `SIGUSR1` to koushin.
killall -USR1 koushin
## Contributing
2019-12-17 09:58:31 +00:00
Send patches on the [mailing list], report bugs on the [issue tracker].
2019-12-02 14:31:00 +00:00
## License
MIT
2019-12-17 09:58:31 +00:00
[RFC 6186]: https://tools.ietf.org/html/rfc6186
2019-12-17 09:58:31 +00:00
[Go plugin helpers]: https://godoc.org/git.sr.ht/~emersion/koushin#GoPlugin
[mailing list]: https://lists.sr.ht/~sircmpwn/koushin
[issue tracker]: https://todo.sr.ht/~sircmpwn/koushin