HTML template engine designed for server-side rendering like the good ol' days but more maintainable and with particular support for progressive enhancement with HTMX.
Go to file
Olivier 'reivilibre' b69662cfdc Update flake input nixpkgs to 24.05
Signed-off-by: Olivier <olivier@librepush.net>
2024-06-19 23:57:24 +01:00
demo_hornbeam_project Release 0.0.4 2024-06-19 23:55:55 +01:00
hornbeam Release 0.0.4 2024-06-19 23:55:55 +01:00
hornbeam_grammar Release 0.0.4 2024-06-19 23:55:55 +01:00
hornbeam_interpreter Release 0.0.4 2024-06-19 23:55:55 +01:00
hornbeam_ir Release 0.0.4 2024-06-19 23:55:55 +01:00
hornbeam_macros Release 0.0.3 2024-05-02 21:28:32 +01:00
.envrc Switch to a Nix flake that uses the fenix toolchain for a later Rust version 2023-11-26 20:39:09 +00:00
.gitignore Switch to a Nix flake that uses the fenix toolchain for a later Rust version 2023-11-26 20:39:09 +00:00
Cargo.lock Release 0.0.4 2024-06-19 23:55:55 +01:00
Cargo.toml Get the engine in workable condition 2023-03-02 21:23:24 +00:00
LICENCE.txt Add missing metadata for crate publication 2023-10-15 18:03:51 +01:00
README.md Add releasing instructions to README 2023-11-26 20:39:20 +00:00
flake.lock Update flake input nixpkgs to 24.05 2024-06-19 23:57:24 +01:00
flake.nix Update flake input nixpkgs to 24.05 2024-06-19 23:57:24 +01:00
shell.nix Add pkgs.rust-analyzer to nix flake 2023-11-26 19:53:40 +00:00

README.md

Hornbeam Template Engine

WIP. Will be: a lightweight and nimble HTML templating engine, designed for component reuse and ease of use with HTMX, whilst not harming iterative development time.

Crates

  • hornbeam — usual point of entry to the engine, useful in applications.
  • hornbeam_grammar — grammar definition for Hornbeam templates.
  • hornbeam_ir — intermediate representation for Hornbeam templates.
  • hornbeam_interpreter — interpreter for Hornbeam templates, using bevy_reflect and being hot-reloadable. Useful in debug builds.
  • hornbeam_macros — macros for compile-time template compilation to Rust. Useful in release builds.

Licence

Currently under the AGPL 3 or later, but this is relatively likely to be changed at a later date.

See LICENCE.txt.

Development

Releasing

This is the command used to cut a release:

cargo ws publish patch --all --force '*'
  • patch could be major or minor instead.
  • --force '*' means all packages are bumped, even though they have no changes. This keeps the version numbers in sync.
  • --all means demo_hornbeam_project will be bumped even though it is not published.