Skip to main content

CHANGELOG.md

# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [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](https://htmx.org/docs/#oob_swaps).

## [0.3.0] - 2025-09-22

### Added

- New module: `Hypa.Conn`, which has functions for adding htmx [response
  headers](https://htmx.org/docs/#response-headers)

## [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`

[0.4.0]: https://code.cosmicrose.dev/rosa/hypa/releases/tag/v0.4.0
[0.3.0]: https://code.cosmicrose.dev/rosa/hypa/releases/tag/v0.3.0
[0.2.0]: https://code.cosmicrose.dev/rosa/hypa/releases/tag/v0.2.0
[0.1.0]: https://code.cosmicrose.dev/rosa/hypa/releases/tag/v0.1.0