From 0a56365672dab47d27a57d703aeb33477c60b10c Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 11 Feb 2020 17:42:10 +0100 Subject: [PATCH] docs/themes-and-plugins: extract from README --- README.md | 39 -------------------------------------- docs/themes-and-plugins.md | 32 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 39 deletions(-) create mode 100644 docs/themes-and-plugins.md diff --git a/README.md b/README.md index f95c3f9..58b3d0a 100644 --- a/README.md +++ b/README.md @@ -16,45 +16,6 @@ To manually specify upstream servers: See `docs/cli.md` for more information. -## 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 - -## 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]. 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