All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.4.0 - 2026-06-03

Added

  • New module: Hypa.Phoenix, which has a new function useful for rendering multiple Phoenix templates at once: Hypa.Phoenix.render_many/2. This function accepts the conn and a list of templates and assigns, like this:

    conn
    |> Hypa.Phoenix.render_many([
      :foo,
      {:bar, [a: 1]},
      {"baz", [b: 2, c: 3]}
    ])

    This will render foo.html.heex, bar.html.heex, and bax.html.heex with the given assigns, using the Phoenix.View used by the current controller.

    This should be useful for rendering out-of-band swaps.

0.3.0 - 2025-09-22

Added

0.2.0 - 2024-07-21

Added

  • Two new operations to Hypa.Plug:
    • add_htmx_cache_control/2 - adds hx-request to the vary header for better cache control
    • put_htmx_layout/2 - removes the Phoenix layouts from responses to htmx requests. This is only enabled if Phoenix.Controller is defined. Phoenix is now an optional dependency.

0.1.0 - 2024-07-18

Added

  • Hypa.Plug - parses htmx request headers and puts them in conn.assigns