All changes included in 1.10:
- (#14267): Fix Windows paths with accented characters (e.g.,
C:\Users\Sébastien\) breaking dart-sass compilation. - (#14281): Fix transient
.quarto_ipynbfiles accumulating duringquarto previewwith Jupyter engine. - (#14298): Fix
quarto previewbrowse URL including output filename (e.g.,hello.html) for single-file documents, breaking Posit Workbench proxied server access. - (#14489): Restore
--output-dirsupport forquarto previewof single files when no_quarto.ymlis present (e.g. R-package workspaces). Regression introduced in v1.9.18. - (rstudio/rstudio#17333): Fix
quarto inspecton standalone files emitting project metadata that breaks RStudio's publishing wizard.
- (#14468): The
axeaccessibility report UI (HTML overlay, revealjs report slide, dashboard offcanvas) now uses its own theme-independent colors instead of inheriting frombrandor theme. Keeps the report readable regardless of page styling, and stopsaxefrom clobbering brand colors set via_brand.yml.
- (#13588): Fix Lua error when rendering PDF with
reference-location: marginand a footnote alongside a figure withfig-cap. (author: @mcanouil)
- (#14261): Fix theorem/example block titles containing inline code producing invalid Typst markup when syntax highlighting is applied.
- (#14460): Fix CSS
borderandborder-colordeclarations losing tokens that precede anrgb()/rgba()color (e.g.border: 0px solid rgb(255, 0, 0)rendering as a 2.25pt border instead of being suppressed). Also fixes:var(--brand-NAME)references crashing the Typst CSS translator whenNAMEcontained digits (e.g.--brand-red-50); a crash when anrgba()alpha is unparseable; thedvminlength unit being silently rejected (a stray space in the unit table); CSS keywords likeBOLDnot matching asbold(CSS keywords are case-insensitive); invalid hex colors like#fffffbeing silently accepted as 2-component colors.
- (#14354): Fix trailing whitespace after author name on title slide when ORCID is not set. (author: @jnkatz)
- (#13565, #14353): Fix sidebar logo not appearing on secondary sidebars in multi-sidebar website layouts.
- (#14493): Fix category links on a post going to the wrong listing when the post appears in multiple listings.
- (#14281): Avoid creating a duplicate
.quarto_ipynbfile on preview startup for single-file Jupyter documents.
- (#14304): Fix
quarto install tinytexsilently ignoring extraction failures. When archive extraction fails (e.g.,.tar.xzon a system withoutxz-utils), the installer now reports a clear error instead of proceeding and failing with a confusingNotFoundmessage. - (#11877, #9710): Add arm64 Linux support for
quarto install chrome-headless-shellusing Playwright CDN as download source, since Chrome for Testing has no arm64 Linux builds. - (#11877): Deprecate
quarto install chromium— the command now transparently redirects tochrome-headless-shell. Installingchrome-headless-shellautomatically removes any legacy Chromium installation. Usechrome-headless-shellinstead, which always installs the latest stable Chrome (the legacychromiuminstaller pins an outdated Puppeteer revision that cannot receive security updates). - (#14363): Add retry logic for tool downloads to handle transient network failures (connection resets, CDN timeouts) during
quarto install.
- (#11877):
quarto check installnow shows a deprecation warning when legacy Chromium (installed viaquarto install chromium) is detected, directing users to installchrome-headless-shellas a replacement.
- (#14250): Fix
quarto createproducing read-only files when Quarto is installed via system packages (e.g.,.deb). Files copied from installed resources now have user-write permission ensured.
- (#14297): Fix
quarto.utils.is_empty_node()returning inverted results for text nodes (Str,Code,RawInline).
- (#14374): Avoid a crash when a third-party Jupyter kernel (observed with Maple 2025, built on XEUS) returns
execute_replywithout the requiredstatusfield. The failing cell is recorded as an error instead of aborting the render. (author: @ChrisJefferson)
- (#6651): Fix dart-sass compilation failing in enterprise environments where
.batfiles are blocked by group policy. - (#14255): Fix shortcodes inside inline and display math expressions not being resolved.
- (#14342): Work around TOCTOU race in Deno's
expandGlobSyncthat can cause unexpected exceptions to be raised while traversing directories during project initialization. - (#14445): Fix intermittent
Uncaught (in promise) TypeError: Writable stream is closed or errored.aborting renders on Linux.execProcessnow awaits and swallows the rejection fromprocess.stdin.close()when the child closes its stdin first. The captured stderr is now also surfaced whentypst-gather analyzefalls back to staging all packages, so failures are diagnosable without bypassingquarto. - (#14359): Fix intermediate
.quarto_ipynbfile not being deleted after rendering a.qmdwith Jupyter engine, causing numbered variants (_1,_2, ...) to accumulate on disk across renders. - (#14461): Fix
quarto render --to pdfaborting withERROR: Problem running 'fmtutil-sys --all' to rebuild format tree.when an automatically-installed LaTeX package's post-update format rebuild fails. Format-tree rebuild is now treated as best-effort housekeeping (matching upstreamtinytexR behavior) — the failure is logged as a warning and the package install completes. - (#14472): Add support for Kotlin in code annotations and YAML cell options. (author: @barendgehrels)