All changes included in 1.7:
Regression fixes
(#11509): Fix link-decoration regression in HTML formats.
(#11532): Fix regression for #660, which causes files to have incorrect permissions when Quarto is installed in a location not writable by the current user.
(#11549): Fix regression in rendering
dashboardtabsets into cards without titles.(#11561): Fix a regression with
$border-colorthat impacted, callouts borders, tabset borders, and table borders of the defaults themes.$border-coloris now correctly a mixed of$body-colorand$body-bgeven for the default theme.(#11580): Fix regression with documents containing
categoriesfields that are not strings.(#11659):
juliaengine - Fix escaping bug where paths containing spaces or backslashes break server startup on Windows.(#11752): Fix regression with non-alphanumeric characters in
categoriespreventing correct filtering of listing.(#11943): Fix callout title color on dark theme in revealjs following Revealjs update in quarto 1.6.
(#11990): Do not print parameter cell in parameterized Jupyter notebooks.
(#12147): for RevealJS format,
serifandsimplethemes defaults back to have their heading color ($presentation-heading-color) to be the same as the body color ($body-color) as in Quarto 1.5.
Dependencies
Update
typstto0.13.0.Update
pandocto3.6.3.Update
dart-sassto1.85.1.Update
esbuildto0.19.12.
YAML validation
(#10251): EJS template for website now uses proper object to get alt text for logo in sidebar.
(#11654): Allow
page-insetas value incolumnkey for code cells.(#12151): Fix YAML validation in computations cell on Windows. Validate YAML in documents in
juliaengine.
Projects
website
(#8238): Listing categories are now sorted case-insensitively.
(#10501): Improve documentation of
repo-actionsoption.(#11701): Wrap HTML emitted by EJS templates in
{=html}blocks to avoid memory blowup issues with Pandoc's parser.(#12134): Forward
logo.smallimages in_brand.ymlfiles to a websitefavicon.
blog
(#11745): Fix categories links under post title in post with url encoded path (e.g. with space or other special characters).
book
(#11520): Book's cover image now escapes lightbox treatment, which was incorrectly applied to it when
lightbox: truewas set in the book's configuration.(#12134): Forward
logo.smallimages in_brand.ymlfiles to thefaviconof the book's website.
Commands
quarto check
(#10047):
quarto checkwill now check binary dependency versions strictly by default. Usequarto check --no-strictto revert to old behavior.(#10561):
quarto checkwill now report paths of binary dependencies.(#11608): Do not issue error message when calling
quarto check info.(#12433): Add
--outputoption toquarto checkto produce structured JSON output.
quarto convert
(#12042): Preserve Markdown content that follows YAML metadata in a
raw.ipynb cell.(#12318): Ensure enough line breaks between cells that might be trimmed.
quarto inspect
(#12336): Clean up transient files created by
quarto inspect.
Formats
dashboard
(#11338): Remove unused datatables imports when appropriate.
html
(#1325): Dark Mode pages should not flash light on reload. (Nor should Light Mode pages flash dark.)
(#1470):
respect-user-color-schemeenables checking the media queryprefers-color-schemefor user dark mode preference. Author preference still influences stylesheet order and NoJS experience. Defaults tofalse, leaving to author preference.(#10780): improve
link-external-filterdocumentation.(#11860): ES6 modules that import other local JS modules in documents with
embed-resources: trueare now correctly embedded.(#11911): Code highlighting colors for tokens are now the same between code blocks and inline code when using Pandoc's syntax highlighting.
(#12118): Don't hide
:focuson code-copy button.(#12277): Provide light and dark plot and table renderings with
renderings: [light,dark](#12307): Tabsets using
tabby.jsin non-boostrap html (theme: pandoc,theme: noneorminimal: true) now correctly render reactive content whenserver: shinyis used.(#12319): Provide switchable light and dark brands for a page with
brand.lightandbrand.dark.(#12356): Remove duplicate id in HTML document when using
#lst-prefix label for using Quarto crossref.
pdf
(#11695): Translate ANSI color codes more carefully inside
highlightingenvironments.(#11835): Take markdown structure into account when detecting minimum heading level.
(#11878, #12085): Correctly fixup raw LaTeX table having an unexpected table env with options (e.g
\begin{table}[!ht]) to be handled as crossref table.(#11903):
crossrefconfiguration likefig-titleortbl-titlenow correctly supports multi word values, e.g.fig-title: 'Supplementary Figure'.(#12344): Ensure decorated code blocks do not float when inside layout elements.
Update to Pandoc's LaTeX template following Pandoc 3.6.3 support:
format: beamernow uses its own template. The main template for latex does not use$if(beamer)$anymore, and the new template for beamer uses the same partials as latex one.Improved Babel support:
New
babeloptionsvariable in the template to allow for more flexible Babel options.doc-class.texQuarto's partial has been updated as Babel options have been moved todocumentclassdefinition indoc-class.texQuarto's partial.
New partials available for
format: latexandformat: beamer:Pandoc now uses partials for its latex templates, and they are available through
template-partials. Pandoc's partials uses.latexextension:passoptions.latex,common.latex,font-settings.latex,fonts.latex,hypersetup.latex,after-header-includes.latexNew Quarto partials:
babel-lang.tex,biblio-config.tex. Quarto's partials uses.texextension.
BREAKING CHANGE for templates authors:
common.latexdoes now usespandoc.texpartial from Quarto, which include now part of the content that was in maintemplate.tex. If you modifypandoc.texas part of a custom format, it should be updated to new content.
jats
Update to Pandoc's template following Pandoc 3.6.3 support:
article.jats_publishingpartials now supportauthor.roles
revealjs
(#12307): Tabsets using
tabby.jsin Revealjs now correctly render reactive content whenserver: shinyis used.
typst format
(#11578): Typst column layout widths use fractional
frunits instead of percent%units for unitless and default widths in order to fill the enclosing block and not spill outside it.(#11676): Convert unitless image widths from pixels to inches for column layouts.
(#11835): Take markdown structure into account when detecting minimum heading level.
(#11964): Using panel layout without a crossref label now correctly do not add an empty
#block[]that was leading to an unnecessary space in output.(#12387):
brand-modechooses whether to uselight(default) ordarkbrand yml.(#12825): Callouts look better with dark brands, mixing the title color and using brand background color for body.
(#12354): CodeBlock in Listing with
#lst-prefix are now correctly highlighted.
Engines
julia
(#11803): Added subcommands
status,kill,close [--force]andlogunder the new CLI commandquarto call engine julia.(#12121): Update QuartoNotebookRunner to 0.17.0. Support for evaluating Python cells via PythonCall.jl added. Support for notebook caching via
execute.cacheadded.(#12151): Basic YAML validation is now active for documents using Julia engine.
jupyter
(#9089): Serialize compound
jupytermetadata into a special key-value attribute to not break Pandoc's fenced div parsing.(#10113): KaTeX will now load correctly in
engine: jupyterdocuments usingemebed-resources: true.(#12114):
JUPYTERCACHEenvironment variable from Jupyter cache CLI is now respected by Quarto whencache: trueis used. This environment variable allows to change the path of the cache directory.(#12228):
quarto renderwill now fails if errors are detected at IPython display level. Settingerror: trueglobally or at cell level will keep the error to show in output and not stop the rendering.(#12374): Detect language properly in Jupyter notebooks that lack the
languagefield in theirkernelspecs.
Quarto PDF rendering
(#12194): More specific checks added in log parsing to automatically find missing fonts.
Shiny
(#12059):
quarto previewnow correctly run on Windows an interactive Quarto doc with Jupyter engine and py-shiny, when using a*.pyfile as resource.
Lua Filters and extensions
Add
quarto.paths.tinytex_bin_dirto Quarto's Lua API. If TinyTeX is found by Quarto, this will be set to the path to thebindirectory of the TinyTeX installation where command line tool are located (e.g.,pdflatex,tlmgr, etc.). If TinyTeX is not found, this will benil, meaning Quarto will use the system PATH to find the command line tools.Fix
pandoc.mediabagLua typings so autocompletions work with the Lua LSP integration.(#11379): Add
versionshortcode to display the current Quarto version.(#11526): General improvements to the style and robustness of Quarto's Lua code. This also provides a new public function
quarto.utils.is_empty_nodethat allows to check whether a node is empty, i.e., whether it's an empty list, has no child nodes, and contains no text.(#11664):
lipsumshortcode is no longer randomly generated by default, use{{< lipsum random=true >}}to restore randomness.(#11699): Fix crash with
videoshortcode inside HTML comments.(#11896): fix
\f({{< pagebreak >}}) form feed character not valid in PowerPoint (pptx).(#12326): Add
quarto.shortcode.*API entry points for shortcode developers.(#12365):
brand colorshortcode takes an optionalbrandModesecond parameter, defaultlight.(#12453): Expose
_quarto.modules.brandasquarto.brandand addhas_mode()function.(#12564):
brand logoshortcode also takes an optionalbrandModesecond parameter, defaultlight.
Conditional Content
(#4411): Added support for new format and aliases in
when-formatandunless-format:confluence,docusaurus(anddocusaurus-md),email,dashboard,gfm,hugo(andhugo-md).
Quarto Lua API
(#4411):
quarto.format.is_formatis now working as expected with support of more aliases:confluence,docusaurus(anddocusaurus-md),email,dashboard,gfm,hugo(andhugo-md)(#12299):
quarto.doc.pdf_engine()now correctly returns the PDF engine used for the document.quarto.doc.cite_method()now returnsnilif no citation method will be used (i.e. no references is the document set).
Languages
(#12366): Added Bulgarian translation for Quarto UI text (credit: @sakelariev)
quarto publish
(#9929):
quarto publish gh-pageswill now clean previous worktree directory leftover from previous deploys.
Other Fixes and Improvements
A new folder
quarto-session-tempcan be created in.quartoto store temporary files created by Quarto during a rendering. Reminder:.quartois for internal use of Quarto and should not be versioned (thus added to.gitignore).(fb38eb5) Use the
latestparser for Acorn when analyzing JS code imported from OJS blocks.(#7260): Add support for
activeclass in tabsets so the.activetab shows up by default.(#7757): Session temporary files are now cleaned up when the session ends abnormally (e.g.
Ctrl+C) also on Windows.(#8613): Fix
giscuscolor on load to support dark mode (by @kv9898).(#9867): Blank lines are now trimmed in Raw HTML Table blocks.
(#10532): Changed default of
--headless=oldto--headlessas Chrome 132 has removed old headless mode and only support new mode. To use old mode, setQUARTO_CHROMIUMto a newchrome-headless-shellbinary or to an older chrome version (between 128 and 132). SetQUARTO_CHROMIUM_HEADLESS_MODEtooldto use old headless mode with that compatible version.(#10961): Add more information on which Chrome Headless will be used in
quarto check install. This is helpful to help debug mermaid issues.(#11441): Don't add newlines around shortcodes during processing.
(#11606): Added a new
QUARTO_DOCUMENT_FILEenv var available to computation engine to the name of the file currently being rendered.(#11643): Improve highlighting of nested code block inside markdown code block, i.e. using
```{{python}}or```pythoninside````markdownfenced code block.(#11788):
quarto addandquarto removewill return non-zero code when they fail.(#11803): Added a new CLI command
quarto call. First users of this interface are the newquarto call engine julia ...subcommands.(#11951): Raw LaTeX table without
tbl-prefix label for using Quarto crossref are now correctly passed through unmodified.(#11967): Produce a better error message when YAML metadata with
!exprtags are used outside ofknitrcode cells.(#12117): Color output to stdout and stderr is now correctly rendered for
htmlformat in the Jupyter and Julia engines.(#12264): Upgrade
dart-sassto 1.85.1.(#12238): Do not truncate very long console errors (e.g. in Jupyter Notebook with backtrace).
(#12338): Add an additional workaround for the SCSS parser used in color variable extraction.
(#12369):
quarto previewcorrectly throws a YAML validation error when aformatkey does not conform.(#12459): Add
.page-inset-*classes to completions.(#12492): Improve shortcode extension template with new parameters and a link to docs.
(#12513): Fix an issue with
quarto previewwhen using DiagrammeR R package for Graphiz diagram.