Simon Ser efaf6fd444 | 4 vuotta sitten | |
---|---|---|
cmd/koushin | 4 vuotta sitten | |
plugins/base | 4 vuotta sitten | |
themes | 4 vuotta sitten | |
.gitignore | 4 vuotta sitten | |
LICENSE | 4 vuotta sitten | |
README.md | 4 vuotta sitten | |
discover.go | 4 vuotta sitten | |
go.mod | 4 vuotta sitten | |
go.sum | 4 vuotta sitten | |
imap.go | 4 vuotta sitten | |
plugin.go | 4 vuotta sitten | |
plugin_go.go | 4 vuotta sitten | |
plugin_lua.go | 4 vuotta sitten | |
server.go | 4 vuotta sitten | |
session.go | 4 vuotta sitten | |
smtp.go | 4 vuotta sitten | |
template.go | 4 vuotta sitten |
Assuming SRV DNS records are properly set up (see RFC 6186):
go run example.org
To manually specify upstream servers:
go run ./cmd/koushin imaps://mail.example.org:993 smtps://mail.example.org:465
See -h
for more information.
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 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/*
.
They can use the Go plugin helpers and need to be included at compile-time in
cmd/koushin/main.go
.
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 functionkoushin.set_route(method, path, f)
: register a new HTTP route, f
will be
called with the HTTP contextLua plugins and templates can be reloaded by sending SIGUSR1
to koushin.
killall -USR1 koushin
Send patches on the mailing list, report bugs on the issue tracker.
MIT