Packages

Object-oriented web views in Elixir. Build HTML, SVG, and other markup views using Elixir's functional programming paradigm with component-based architecture.

Current section

Files

Jump to
phlex CHANGELOG.md
Raw

CHANGELOG.md

# CHANGELOG
## Unreleased
## 0.3.0 (2026-07-26)
- Harden attribute output against javascript URLs, unsafe names, and nested data attributes
- Validate dynamic HTML and SVG tag names at render time
- Align `plain`/`raw` SafeObject rules with Phlex Ruby; add `unsafe_raw/2`
- Implement process-local `cache/3` and `low_level_cache/3`
- Add nested `render/2` with shared state and `before_template`/`around_template`/`after_template`/`render?` hooks
- Record fragment byte offsets during cache capture and replay selective fragments by offset
- Add `Phlex.CSV` with required `escape_csv_injection?/0` configuration
- Add `Phlex.Kit` with explicit `kit_component/1` registration for nested helpers
- Sync `Phlex.version/0` and README dep pin with package `0.3.0`
## 0.2.0
- Update optional Phoenix dependencies to the latest supported versions
- Refresh development and test tooling dependencies
- Silence non-error logging during tests by default
- Update Phoenix demo dependencies and code reloader listener
## 0.1.0
- Initial public release of `phlex.ex`
- Component-based architecture for building HTML, SVG, and other markup views in Elixir
- Core modules: `Phlex`, `Phlex.SGML`, `Phlex.HTML`, `Phlex.SVG`
- Explicit state passing for functional programming style with clear data flow
- Phoenix and Phoenix LiveView integration via `Phlex.Phoenix`
- StyleCapsule integration helper via `Phlex.StyleCapsule`
- Attribute caching with FIFO cache store for improved performance
- Fragment support for selective rendering and conditional content
- Safe content handling with `SafeValue` and `SafeObject` protocol
- Comprehensive HTML element support (standard elements, void elements, SVG elements)
- Block support with content yielding
- Helper functions for common HTML patterns
- Comprehensive test suite with 279 tests
- Quality assurance: Credo, Dialyzer, ExCoveralls
- Example applications: Phoenix demo and standalone examples
- Elixir >= 1.18 requirement