Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | go fmt | Simon Ser | 2020-01-20 | 1 | -1/+1 |
| | |||||
* | Add current path to the global context | Dejan Strbac | 2020-01-16 | 1 | -0/+4 |
| | |||||
* | Fix panic when injecting a template with nil data | Simon Ser | 2020-01-10 | 1 | -1/+12 |
| | |||||
* | Implement plugin/template reload on SIGUSR1 | Simon Ser | 2020-01-08 | 1 | -9/+2 |
| | | | | | | | | There's no way around having a global mutex, because we need to update the HTTP routes when reloading plugins. During reload we need to lock the whole server. Closes: https://todo.sr.ht/~sircmpwn/koushin/43 | ||||
* | Add Server.Reload | Simon Ser | 2020-01-08 | 1 | -13/+27 |
| | | | | | This only reloads templates for now. In the future it'll also reload Lua plugins. | ||||
* | Add Context to Plugin.Inject | Simon Ser | 2019-12-17 | 1 | -1/+1 |
| | | | | This allows to access the request metadata and the session from injectors. | ||||
* | Add RenderData interface | Simon Ser | 2019-12-17 | 1 | -7/+37 |
| | | | | This allows Go plugins to easily inject global data. | ||||
* | Rename RenderData to BaseRenderData | Simon Ser | 2019-12-17 | 1 | -5/+5 |
| | | | | RenderData will be used for an interface. | ||||
* | Remove the public/ directory | Simon Ser | 2019-12-16 | 1 | -2/+2 |
| | | | | | Now that all templates are provided by plugins, there's no need to have a public/ directory. Themes can be in /themes instead of /public/themes. | ||||
* | Introduce base plugin | Simon Ser | 2019-12-16 | 1 | -14/+1 |
| | | | | | | This plugin offers base IMAP/SMTP functionality. References: https://todo.sr.ht/~sircmpwn/koushin/39 | ||||
* | Add docs | Simon Ser | 2019-12-11 | 1 | -1/+3 |
| | |||||
* | Allow plugins to provide their own templates | Simon Ser | 2019-12-11 | 1 | -3/+6 |
| | |||||
* | Export Server.{Sessions,Plugins} | Simon Ser | 2019-12-11 | 1 | -1/+1 |
| | | | | And unexport a few internal functions. | ||||
* | Export Context | Simon Ser | 2019-12-11 | 1 | -6/+6 |
| | | | | This allows plugins to access it. | ||||
* | go fmt | Simon Ser | 2019-12-10 | 1 | -6/+6 |
| | |||||
* | Introduce GlobalRenderData and RenderData | Simon Ser | 2019-12-10 | 1 | -0/+32 |
| | | | | | | | | GlobalRenderData contains some global metadata that can be obtained from any template. RenderData is a base type for template data. It contains a Global field with global metadata and an Extra field for plugins. | ||||
* | Load all themes on startup | Simon Ser | 2019-12-10 | 1 | -13/+54 |
| | | | | This is the first step to allow each user to have a different theme. | ||||
* | Rename Plugin.Render to Plugin.Inject | Simon Ser | 2019-12-10 | 1 | -1/+1 |
| | | | | | This function doesn't render anything, it just adds extra data to the template data. | ||||
* | Add a Lua API to set template filters | Simon Ser | 2019-12-09 | 1 | -3/+8 |
| | |||||
* | Add basic support for plugins | Simon Ser | 2019-12-09 | 1 | -1/+11 |
| | |||||
* | Add basic theme support | Simon Ser | 2019-12-04 | 1 | -3/+20 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/1 | ||||
* | Escape mailbox names in URLs | Simon Ser | 2019-12-03 | 1 | -0/+4 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/14 | ||||
* | Display & download any message part | Simon Ser | 2019-12-03 | 1 | -1/+5 |
| | |||||
* | Linkify mailbox list | Simon Ser | 2019-12-02 | 1 | -3/+0 |
| | |||||
* | Add HTTP server boilerplate | Simon Ser | 2019-12-02 | 1 | -0/+24 |