htmx 0.4.0 has been released!

htmx 0.4.0 Release I’m pleased to announce the 0.4 release (https://unpkg.com/browse/htmx.org@0.4.0/) of htmx. Changes New Features • Now support the HX-Redirect and HX-Refresh response headers

htmx 0.4.0 Release I’m pleased to announce the 0.4 release (https://unpkg.com/browse/htmx.org@0.4.0/) of htmx.

Changes New Features

• Now support the HX-Redirect and HX-Refresh response headers for redirecting client side and triggering a page refresh, respectively

• hx-vars now overrides input values

tags in responses will be used to update page titles</p> <p>• All uses of eval() have been removed in favor of Function</p> <p>• hx-vals is available as a save alternative to hx-vars. It uses JSON.parse() rather than evaluation, if you wish to safely pass user-provided values through to htmx.</p> <p>Bug Fixes</p> <p>• Eliminated perf issues around hx-boost in large pages that are not using that attribute</p> <p>• Fixed bug which prevented evaluation when a script tag was the leading content in a response</p> <p>Enjoy!</p> </div> <section class="article-references-section p-0"> <ul class="reference-list list-unstyled"> <li> Reference: <a href="https://htmx.org/posts/2020-11-16-htmx-0-4-0-is-released/" target="_blank" rel="noopener noreferrer">https://htmx.org/posts/2020-11-16-htmx-0-4-0-is-released/</a> </li> </ul> </section> </div> <form data-controller="nostr--nostr-comment" data-nostr--nostr-comment-publish-url-value="/comments/publish" data-nostr--nostr-comment-csrf-token-value="ab9d24b6fd0e2bd0033320.FRNHTzAOFaN-Tr3O8mUYWjjPk8VoDpXfDnjpELLSjYE.T3ESCHZFbPIrKdODtCd9PkyBy_0FSdubb0C7dv-Z6vhfezcuBHt3x0c28A" data-nostr--nostr-comment-root="{"tag":"A","value":"30023:247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90:htmx-040-has-been-released","relay":null,"pubkey":"247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90","kind":30023}" data-nostr--nostr-comment-parent="{"tag":"a","value":"30023:247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90:htmx-040-has-been-released","relay":null,"pubkey":"247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90","kind":30023}" data-action="submit->nostr--nostr-comment#publish" class="nip22-comment-form"> <div data-nostr--nostr-comment-target="status"></div> <div class="mb-2"> <label for="comment_content_nip22_comment_69998f1bd8b65" class="form-label hidden">Comment</label> <textarea id="comment_content_nip22_comment_69998f1bd8b65" name="comment[content]" class="form-control" rows="3" required placeholder="Write your comment"></textarea> </div> <input type="hidden" name="comment[root]" value='{"tag":"A","value":"30023:247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90:htmx-040-has-been-released","relay":null,"pubkey":"247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90","kind":30023}'> <input type="hidden" name="comment[parent]" value='{"tag":"a","value":"30023:247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90:htmx-040-has-been-released","relay":null,"pubkey":"247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90","kind":30023}'> <div class="actions"> <button type="submit" data-nostr--nostr-comment-target="publishButton" class="btn btn-primary mt-2">Publish Comment</button> </div> </form> <div data-content--comments-mercure-target="loading" data-controller="content--comments-mercure live" data-content--comments-mercure-coordinate-value="30023:247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90:htmx-040-has-been-released" data-live-name-value="Organisms:Comments" data-live-url-value="/_components/Organisms:Comments" id="live-1600847776-0" data-live-props-value="{"payloadJson":" ","current":"30023:247fb701c5654ff95867d56889c7734539c7195f6c9bc117374a8a649afaea90:htmx-040-has-been-released","list":[],"@attributes":{"id":"live-1600847776-0","data-host-template":"808d5cb179377e956a50b80e03530766","data-embedded-template-index":16008477761},"@checksum":"l\/1xu8ee66lEvxsb0l1nPQjSco7eMFYjXzcUnUHyhW4="}" class="comments" > <div class="comments-list" data-content--comments-mercure-target="list" > <div class="no-comments">No comments yet.</div> </div> </div> </article> </main> <div> <aside id="rightNav"> <header> <button class="close" data-action="click->sidebar-toggle#close" aria-label="Close right sidebar">✕</button> </header> </aside> </div> </div> <div data-controller="utility--install-prompt"> <div class="install-prompt-box hidden" data-utility--install-prompt-target="promptBox" > <p>Install this app on your device for quick access?</p> <button data-action="click->utility--install-prompt#install">Yes, install</button> <button data-action="click->utility--install-prompt#dismiss">No thanks</button> </div> </div> <div data-controller="utility--toast" class="toast-container" data-utility--toast-target="container"> </div> <footer> <div class="footer-links mb-3"> <span>Subscriptions:</span> <a href="/subscription/vanity">Vanity Name</a> | <a href="/subscription/active-indexing">Active Indexing</a> | </div> <div class="footer-links mb-3"> <a href="https://support.decentnewsroom.com" target="_blank">Support</a> </div> <div class="footer-links mb-3"> <a href="/about">About</a> - <a href="/tos">Terms of service</a> - <a href="/feedback">Contact</a> </div> <p>2026 Decent Newsroom - v0.0.11 Preprint</p> </footer> </body> </html>