# v0.7.0

## Highlights

- **HTML DSL**: Write HTML naturally in Nushell without string concatenation or templates. Includes SVG and MathML elements, automatic XSS escaping, and composable components via Nushell functions
- **Datastar SDK** 🚀: Build reactive UIs with server-sent events—all logic stays in Nushell
- **HTTP/2 & Graceful Shutdown**: Production-ready with HTTP/2 over TLS and clean shutdown handling
- **Request Logging**: Live-updating human-friendly logs (default) or structured JSONL for aggregation. `--trust-proxy` extracts real client IPs from X-Forwarded-For when behind reverse proxies
- **Routing Module**: Organize routes with `route` and `dispatch` commands
- **Syntax Highlighting**: `.highlight` command for code blocks with theme support
- **Plugin Support**: Load Nushell plugins with `--plugin` flag
- **Precompiled Templates**: `.mj compile/render` for Jinja2 templates—~200x faster than generating HTML on the fly
- **Eval Subcommand**: `http-nu eval` runs Nushell expressions with http-nu's embedded modules and custom builtin commands available
- **Homebrew**: `brew install cablehead/tap/http-nu` on macOS

## Raw commits

* feat: add Open Graph meta tags and social card image (2025-12-31)
* docs: README.md (2025-12-31)
* feat: add landing page (2025-12-31)
* feat: add SVG and MathML elements to HTML DSL (2025-12-31)
* feat: add syntax highlighting commands (2025-12-30)
* docs: add precompiled template capture example (2025-12-30)
* fix: preserve closure captures when running handler (2025-12-29)
* feat: add structured logging and trusted proxy support (#34) (2025-12-29)
* test: improve graceful shutdown test timing tolerance for CI (2025-12-29)
* ci: free disk space before builds to fix Windows linker OOM (2025-12-29)
* fix: make --plugin flag global for position-independent usage (2025-12-29)
* feat: add --plugin flag to load Nushell plugins (#33) (2025-12-29)
* docs: document {__html} for trusted content in HTML DSL (2025-12-29)
* fix(examples): wrap P elements in quotes example (2025-12-29)
* feat(html): HTML element includes DOCTYPE automatically (2025-12-29)
* docs: add file watch reload example (2025-12-29)
* chore: format nushell files with topiary (2025-12-27)
* fix: update examples to use correct HTML DSL syntax (2025-12-27)
* feat: auto-unwrap {__html} records in response handling (2025-12-26)
* feat: HTML DSL redesign with XSS protection and Jinja2 integration (2025-12-26)
* feat: add .mj compile/render commands and eval subcommand (2025-12-26)
* feat(html): ADD UPPERCASE TAG VARIANTS FOR THE SHOUTY STYLE (2025-12-19)
* feat(html): style values accept lists for comma-separated CSS (2025-12-19)
* docs(html): document boolean attributes (2025-12-18)
* feat(html): support boolean attributes (2025-12-18)
* fix(html): handle empty args for nushell <0.109 compat (2025-12-18)
* feat(html): variadic args, class lists, recursive children (2025-12-17)
* docs(datastar): add mathml to namespace options (2025-12-17)
* feat(html): allow style attribute to be a record (2025-12-17)
* refactor(examples): use HTML DSL, unquoted methods, content negotiation (2025-12-16)
* chore: lint test_html.nu (2025-12-16)
* feat(html): add +tag append variants for sibling elements (2025-12-16)
* docs: reorganize README with Reference section and Embedded Modules (2025-12-16)
* refactor(examples): use append pipelines in datastar-sdk (2025-12-16)
* refactor(router): stream request body through dispatch to handlers (2025-12-16)
* feat: add datastar-sdk example and fix from datastar-request API (2025-12-16)
* docs: simplify quotes example with nushell and posix examples (2025-12-16)
* refactor(html): use _ prefix and explicit append for siblings (2025-12-16)
* style: use raw strings in tests and apply nushell formatting (2025-12-15)
* test: export attrs-to-string and add tests (2025-12-15)
* docs: document HTTP/2 support in TLS section (2025-12-15)
* feat: add Datastar SSE SDK module (#31) (2025-12-15)
* feat: add HTML DSL module (#30) (2025-12-15)
* feat: add embedded routing module (2025-12-11)
* feat: add HTTP/2 support and graceful shutdown (2025-12-06)
