Release v0.12.0
v0.12.0
Highlights
Templates can now load from the store. .mj --topic "page.html" renders a template stored in an xs topic, and {% extends %} / {% include %} references resolve as topic names from the same store. Previously you could load template content via --inline, but if that template referenced other templates they'd resolve from the filesystem -- there was no way for stream-sourced templates to reference each other.
.mj and .mj compile now take exactly one of three mutually exclusive modes:
- File --
{% extends %}/{% include %}resolve from the template's directory on disk - Inline (
--inline) -- self-contained, no resolution - Topic (
--topic, requires--store) -- resolves template names as store topics
examples/templates/ demonstrates all three modes with visually distinct template variants so you can tell which source served the page.
Scripts can use path self for relative paths. Handler scripts no longer need to hardcode paths relative to the working directory:
const script_dir = path self | path dirname
let slides = open ($script_dir | path join data.json)
let page = .mj compile ($script_dir | path join page.html)http-nu eval works the same way, so you can unit test handler endpoints from anywhere:
# test.nu
use std/assert
const script_dir = path self | path dirname
let handler = source ($script_dir | path join serve.nu)
let response = do $handler {method: GET, path: "/", headers: {}}
assert ($response | str contains "<h1>State in the Right Place</h1>")http-nu eval test.nuThe Nushell standard library (std/assert, std/log, etc.) is now available in scripts and eval.
Breaking changes
- feat!: inline mode no longer attaches a filesystem loader --
{% include "local.html" %}in an--inlinetemplate previously resolved from the working directory; use file mode instead
Changelog
- feat!: .mj --topic for store-backed templates (#40) (2026-02-18)
- feat: support path self in file-based scripts (2026-02-18)
- feat: load nushell stdlib into engine (2026-02-19)
- examples: add unit test for tao handler (2026-02-19)
- examples: use path self for relative paths in tao (2026-02-18)
- examples: The Tao of Datastar (#39) (2026-02-18)
- docs: document unit testing endpoints with eval (2026-02-19)