← Back to all sparks
Q

q2

INFRA · APIS
Velocity6.3

q2 is the experimental implementation of Quarto 2 in Rust.

After two releases pulling ahead, q2 spends v0.23.0 back on parity: light/dark theming.

rust-rewritepublishing-toolchainquartothemingllms-txtexperimental
Current state
q2 is the Quarto team's Rust reimplementation of the publishing toolchain, shipping as a statically linked single binary with minisign-signed archives and a bundled Quarto Hub MCP server, still marked experimental and not production-ready. The cadence holds at roughly a release a day through mid-August, with raw commit logs standing in for curated notes. v0.22.0 was the break in the pattern — llms.txt site output and a live-share preview, the first capability the original toolchain does not have. v0.23.0 goes straight back to closing the parity gap, and does it at epic scale.
Where it's heading
The light-dark epic is the shape of how this team retires a Quarto 1 feature: a design doc, then ThemeConfig growing a parsed dark variant, dual theme compilation with color-scheme emission, attributed stylesheet links, a color-mode toggle runtime, an accessibility-aware highlight-style reader, a brand light/dark seam, and an end-to-end verification pass against quarto-web before the docs land. One phase (D) was deferred with its options recorded rather than dropped. Around it, panel-tabset support lands, format.html.css is finally copied and rebased per page, and the llms companion output gains a link-format attribute so authors control where companion links point — the one thread tying this release back to the v0.22.0 work.
Prediction
Expect the remaining Q1 parity items to keep setting the release agenda, with the deferred light-dark phase D and the freshly opened panel-tabset plan the two named strands most likely to fill the next few tags. npx distribution for the standalone Quarto Hub MCP bundle is still the only distribution item the notes explicitly call planned.

Recent moves

  1. 1d ago

    Light/dark themes with a color-mode toggle; panel-tabset support

    The light-dark epic lands nearly whole: the theme config gains a parsed dark variant, both variants compile with color-scheme emission and attributed stylesheet links, and a runtime toggle ships alongside accessibility-aware highlight palettes and a brand light/dark seam, verified end-to-end against quarto-web. Panel-tabset support and a fix for format.html.css never being copied or rebased land in the same tag. This is parity work against Quarto 1 rather than new ground, but it is the largest single parity push in the window.

    View source ↗
  2. 4d ago

    llms.txt site output and a live-share collaborative preview

    ⚡ SPARK

    The release where q2 stops only catching up: website.llms-txt makes a rendered site emit a machine-readable version of itself, and the long-running preview branch turns q2 preview into a live-share editor with joinable guest sessions. Everything since has been parity work again, which makes this the pivot the current arc is measured against.

    View source ↗
  3. 5d ago

    TOC entries carry inline markup; draft banner restored

    Table-of-contents entries and the TOC title stop dropping quote glyphs and other inline markup, Quarto 1's draft alert banner is emitted again, and site-root-relative paths are resolved across navbar logos, image targets and nav/footer regions. Typical of the parity grind: each item is a specific Quarto 1 behaviour q2 did not yet reproduce.

    View source ↗
  4. 6d ago

    Adds alias redirect stubs and diagnostic suppression

    Website projects get aliases: redirect stubs, and authors get a diagnostics: key to suppress warnings, alongside smart-punctuation and footnote-parsing fixes. Small surface additions rather than direction, but the diagnostics control is the first lever handed to authors over q2's own error output.

    View source ↗
  5. 6d ago

    Bumps samod and automerge; fixes indented continuations

    A dependency bump for samod and automerge plus a scanner fix so indented continuation lines stop parsing as hard errors. Nothing here changes what q2 can do; it is the maintenance tick between two feature releases.

    View source ↗
  6. 7d ago

    Lua filters supported; mermaid bundled instead of CDN-loaded

    Lua filters written in the returned-table and filter-list forms stop being ignored, closing a compatibility hole in the extension path, and the mermaid runtime is bundled into rendered sites instead of pulled from jsDelivr. A lint now requires a docs page for every error code, backfilling 28 missing ones. Read against the arc, this is parity and hygiene work rather than the directional move the v0.22.0 pair was.

    View source ↗