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.
Olivier 'reivilibre'
b69662cfdc
Signed-off-by: Olivier <olivier@librepush.net> |
||
---|---|---|
demo_hornbeam_project | ||
hornbeam | ||
hornbeam_grammar | ||
hornbeam_interpreter | ||
hornbeam_ir | ||
hornbeam_macros | ||
.envrc | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENCE.txt | ||
README.md | ||
flake.lock | ||
flake.nix | ||
shell.nix |
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, usingbevy_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 bemajor
orminor
instead.--force '*'
means all packages are bumped, even though they have no changes. This keeps the version numbers in sync.--all
meansdemo_hornbeam_project
will be bumped even though it is not published.