feat: add template inheritance (extends/block) support

- ViewEngine now supports extends and named blocks
- Each route gets exclusive cached AST (no shared parent layouts)
- Fix iteration over struct arrays in each loops
- Add demo app with full e-commerce layout using extends
- Serve static files from public folder
- Bump version to 0.3.0
This commit is contained in:
2026-01-25 15:23:57 +05:30
parent 776f8a68f5
commit 1b2da224be
52 changed files with 2962 additions and 728 deletions

View File

@@ -1,5 +1,15 @@
mixin btn(text, type="primary")
button(class="btn btn-" + type)= text
//- Button mixins with various styles
mixin btn-link(href, text)
a.btn.btn-link(href=href)= text
mixin btn(text, type)
- var btnClass = type ? "btn btn-" + type : "btn btn-primary"
button(class=btnClass)= text
mixin btn-link(href, text, type)
- var btnClass = type ? "btn btn-" + type : "btn btn-primary"
a(href=href class=btnClass)= text
mixin btn-icon(icon, text, type)
- var btnClass = type ? "btn btn-" + type : "btn btn-primary"
button(class=btnClass)
span.icon= icon
span= text