djust 0.3.3rc2

Pre-releaseReleased

Fixed

  • {% if/else %} branches miscounting div depth in template extraction_extract_liveview_root_with_wrapper and the other extraction methods treated both branches of a {% if/else %} block as independent div opens, causing depth to never reach 0 when both branches opened a div sharing a single closing </div>. This caused the entire template to be returned as root, making the view non-reactive. Fixed with a shared _find_closing_div_pos() static method that uses a branch stack to restore depth at {% else %}/{% elif %} tags, so mutually-exclusive branches are counted as one open. (#365)
  • VDOM extraction used fully-merged {% extends %} document — For inherited templates, get_template() extracted the VDOM root from the fully-resolved document (base HTML + inlined blocks), which contains surrounding HTML that the depth counter could trip over. Now prefers the child template source when it contains dj-root/dj-view, which holds exactly the block content needed. Also fixes the exception fallback path: the raw child source (containing {% extends %}) was incorrectly stored in _full_template, causing render_full_template to attempt rendering a non-standalone template. (#366)
  • TypeError: Illegal invocation in debug panel on Chrome/Edge_hookExistingWebSocket called native WebSocket getter/setter functions via Function.prototype.call() from external code, which fails V8's brand check on IDL-generated bindings. Fixed by using normal property access (ws.onmessage) and assignment (ws.onmessage = handler) instead of desc.get/set.call(ws). (#367)

All releases · Atom feed