286bf0018f
fix: scope mixin variables to avoid redefinition errors on multiple calls
2026-01-22 23:37:28 +05:30
c0bbee089f
chore: bump version to 0.1.4
2026-01-22 23:23:41 +05:30
654b45ee10
Compiled temapltes.
...
Benchmark cleanup
2026-01-22 11:10:47 +05:30
e2a1271425
v0.1.3: Add scoped warnings for skipped errors
...
- Add scoped logger (pugz/runtime) for better log filtering
- Add warnings when mixin not found
- Add warnings for mixin attribute failures
- Add warnings for mixin directory/file lookup failures
- Add warnings for mixin parse/tokenize failures
- Use 'action first, then reason' pattern in all log messages
2026-01-19 19:31:39 +05:30
a498eea0bc
v0.1.2: Bump version
2026-01-19 19:20:33 +05:30
c172009799
v0.1.1: Add warning log when mixin is not found
2026-01-19 19:19:28 +05:30
8ff473839c
Bump version to 0.1.0
2026-01-19 19:11:36 +05:30
4538b17f0a
Add ViewEngine for easy server integration
...
- ViewEngine manages views directory with path resolution
- Auto-loads mixins from views/mixins/ directory
- Simplifies template paths (relative to views dir, auto-adds extension)
- Updated example app to use ViewEngine
- Added example mixins (buttons.pug, cards.pug)
- Updated CLAUDE.md with ViewEngine documentation
2026-01-18 00:05:16 +05:30
6ab3f14897
Initial commit: Pugz - Pug-like HTML template engine in Zig
...
Features:
- Lexer with indentation tracking and raw text block support
- Parser producing AST from token stream
- Runtime with variable interpolation, conditionals, loops
- Mixin support (params, defaults, rest args, block content, attributes)
- Template inheritance (extends/block/append/prepend)
- Plain text (piped, dot blocks, literal HTML)
- Tag interpolation (#[tag text])
- Block expansion with colon
- Self-closing tags (void elements + explicit /)
- Case/when statements
- Comments (rendered and silent)
All 113 tests passing.
2026-01-18 00:05:16 +05:30