21 lines
959 B
Markdown
21 lines
959 B
Markdown
# Calathea
|
|
|
|
## Templates and rendering
|
|
|
|
Calathea uses the [Tera](https://keats.github.io/tera/) templating engine. To
|
|
combine Tera and HTMX, the template directory has the following structure:
|
|
|
|
* `components` contains components used to build views. Components are defined
|
|
as Tera [macros](https://keats.github.io/tera/docs/#macros).
|
|
* `views` contains view templates that make use of the components.
|
|
* `updates` are templates returned from e.g. POST requests. Tbey usually
|
|
directly wrap a component, e.g. a plant `li` item.
|
|
* `base.html` defines the skeleton for each page. Each view is rendered with
|
|
this as its surrounding HTML.
|
|
|
|
When a page is requested from the server, it inspects the `HX-Request` and
|
|
`HX-History-Restore-Request` headers to determine whether a full page should be
|
|
returned or only the inner view. Using this, the server cn support direct
|
|
routing to pages and caching properly while still supporting partial rendering
|
|
using HTMX.
|