A webmail client. Forked from https://git.sr.ht/~migadu/alps
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
Simon Ser d31c56ec98
plugins/base: edit drafts
před 4 roky
cmd/koushin Extract Lua infrastructure into a plugin před 4 roky
plugins plugins/base: edit drafts před 4 roky
themes themes/sourcehut: add search input to mailbox view před 4 roky
.gitignore Extract Lua infrastructure into a plugin před 4 roky
LICENSE Correct license ownership před 4 roky
README.md readme: fix example usage před 4 roky
discover.go Auto-discover upstream SMTP and IMAP servers před 4 roky
go.mod plugins/base: append outgoing messages to Sent mailbox před 4 roky
go.sum plugins/base: append outgoing messages to Sent mailbox před 4 roky
imap.go Introduce base plugin před 4 roky
plugin.go Extract Lua infrastructure into a plugin před 4 roky
plugin_go.go Update docs with new RegisterPluginLoader function před 4 roky
renderer.go Use %q to quote values in format strings před 4 roky
server.go Extract Lua infrastructure into a plugin před 4 roky
session.go Fix dangling goroutine on session expiration před 4 roky
smtp.go Introduce base plugin před 4 roky

README.md

koushin

GoDoc

Usage

Assuming SRV DNS records are properly set up (see RFC 6186):

go run ./cmd/koushin 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.

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

Hot reload

Lua plugins and templates can be reloaded by sending SIGUSR1 to koushin.

killall -USR1 koushin

Contributing

Send patches on the mailing list, report bugs on the issue tracker.

License

MIT