From 0a56365672dab47d27a57d703aeb33477c60b10c Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 11 Feb 2020 17:42:10 +0100 Subject: docs/themes-and-plugins: extract from README --- docs/themes-and-plugins.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 docs/themes-and-plugins.md (limited to 'docs') diff --git a/docs/themes-and-plugins.md b/docs/themes-and-plugins.md new file mode 100644 index 0000000..1d793f8 --- /dev/null +++ b/docs/themes-and-plugins.md @@ -0,0 +1,32 @@ +# Themes + +They should be put in `themes//`. + +Templates in `themes//*.html` override default templates in plugins. +Assets in `themes//assets/*` are served by the HTTP server at +`/themes//assets/*`. + +# Plugins + +Plugins can be written in Go or in Lua and live in `plugins//`. + +Plugins can provide their own templates in `plugins//public/*.html`. +Assets in `plugins//public/assets/*` are served by the HTTP server at +`/plugins//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//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 -- cgit v1.2.3