Added
{% url %}Tag Support: Django's{% url %}template tag is now fully supported with automatic Python-side URL resolution. Supports named URLs, namespaced URLs, and positional/keyword arguments. (#55){% include %}Tag Support: Fixed template include functionality by passing template directories to the Rust engine. Included templates are now correctly resolved from configured template paths. (#55)urlencodeFilter: Added theurlencodefilter for URL-safe encoding of strings. Supports encoding all characters or preserving safe characters. (#55)Comparison Operators in
{% if %}Tags: Added support for>,<,>=,<=comparison operators in conditional expressions. (#55)Auto-serialization for Django Types: Context variables with Django types (datetime, date, time, Decimal, UUID, FieldFile) are now automatically serialized for Rust rendering. No manual JSON conversion required. (#55)
Lazy Hydration: LiveView elements can now defer WebSocket connections until they enter the viewport or receive user interaction. Use
dj-lazyattribute with modes:viewport(default),click,hover, oridle. Reduces memory usage by 20-40% per page for below-fold content. (#54)TurboNav Integration: LiveView now works seamlessly with Turbo-style client-side navigation. WebSocket connections are properly disconnected on navigation and reinitialized when returning to a page. (#54)
See
docs/guides/turbonav-integration.md.
Changed
- AST Optimization: Template parser now merges adjacent Text nodes during AST optimization, reducing allocations and improving render time by 5-15%. Comment nodes are also removed during optimization as they produce no output. (#54)
Fixed
- Nested Block Inheritance: Fixed template inheritance for nested blocks (e.g.,
docs_contentinsidecontent). Block overrides are now recursively applied to merged content, ensuring deeply nested blocks are correctly resolved. (#57) - Form Validation First-Click Issue: Added
parse_html_continue()function to maintain ID counter continuity across parsing operations. Prevents ID collisions when inserting dynamically generated elements (like validation error messages) that caused first-click validation issues. (#54) - Whitespace Preservation: Whitespace is now preserved inside
<pre>,<code>,<textarea>,<script>, and<style>elements during both Rust parsing and client-side DOM patching. (#54)
Security
- pyo3 Upgrade: Upgraded pyo3 from 0.22 to 0.24 to address RUSTSEC-2025-0020 (buffer overflow vulnerability in
PyString::from_object). (#55)