Simple plant tracker built using Axum, HTMX and Pico CSS.
 
 
 
Go to file
Jef Roosens 4a4b8bba3d
feat: overhaul templating system
2025-01-10 15:16:01 +01:00
src feat: overhaul templating system 2025-01-10 15:16:01 +01:00
templates feat: overhaul templating system 2025-01-10 15:16:01 +01:00
.dockerignore chore: add Dockerfile 2025-01-10 13:22:33 +01:00
.gitignore refactor: move db stuff into own module 2024-12-28 15:58:07 +01:00
Cargo.lock chore: add Dockerfile 2025-01-10 13:22:33 +01:00
Cargo.toml chore: add Dockerfile 2025-01-10 13:22:33 +01:00
Dockerfile chore: add Dockerfile 2025-01-10 13:22:33 +01:00
README.md feat: overhaul templating system 2025-01-10 15:16:01 +01:00

README.md

Calathea

Templates and rendering

Calathea uses the 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.
  • 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.