Languages
Add Serbian-Latin translation (author: @n_grubor)
Add Slovak translation (author: @tom67)
Improve Italian translation of 'proof' (author: @espinielli)
Add Greek translation (author: @cultab)
Add Norwegian translation (author: @lektorodd)
Add Lithuanian translation (author: @GegznaV)
Add Traditional Chinese (Taiwan) translation (author: @bobby1030)
Update Catalan translation (author: @jmaspons)
Dependencies
Update to Pandoc 3.1.11
Update to Typst 0.10.0
Breaking Changes
In website projects, a single sidebar with a
idproperty will no longer be used as a global sidebar. It will instead be used as a sidebar for only pages which specify thatidor pages linked to from the sidebar.
HTML Format
Add support for showing cross reference contents on hover (use
crossrefs-hover: falseto disable).Add support for displaying
keywordsin HTML page title block, when present.(#3473): Add support for
body-rightandbody-leftlayouts for Website Table of Contents.(#3895): Other format links can appear on the left (ensure that they follow the
toc-locationwhether or not a toc is visible).(#4840): Add support for specifying a custom Hypothesis client url using
client-url(#4882): Add support for
canonical-url, which when provided will include a link tag with rel='canonical' which will use an explictly provided or automatically generated canonical url for the document.(#5189): Ensure appendix shows even when
page-layoutis custom.(#5196): Properly support
title-prefixfor HTML output(#5210): Update to Bootstrap 5.2.2
(#5393): Properly set color of headings without using opacity.
(#5403): Fix accessibility issues with the
kbdshortcode.(#5431): Properly apply column positioning to title metadata.
(#5516): Ensure that images which appear in the margin are properly marked as fluid.
(#5663): Properly forward column grid position to sub grids with margin elements.
(#5700): Don't show scrollbars on Windows when hovering over hover code annotations.
(#5708): Fix hang when viewing pages with specific query parameter
(#5789): Correct appearance of languageless code cells in some contexts
(#5794): Fix incorrect caching behavior when
importis used in scss themes.(#5798): Improve the layout consistency of HTML callouts.
(#5856): Always render the title block of HTML pages (previously would only render when title or subtitle was provided).
(#5929): Split border-bottom properties to avoid invalid
inheritentry in resulting CSS.(#5955): Correct HTML callout appearance when title isn't present.
(#5957): Fix layout issues when margin footnotes are contained in headings or other formatted text.
(#6004): Improve appearance of Cross Talk controls in Quarto HTML documents
(#6163): Wrap
svgoutput ofdotcells in RawBlockhtmlelements.(#6430): Fix layout issue with banner style title block authors when
page-layout: full(#6627): Add a bit of margin-right to checkbox inputs.
(#6693): Fine tune table appearance to improve consistency
(#6714): Display title block for HTML when other (non-title/author/subtitle) metadata is present.
(#6833): Handle partially-specified aspect ratio, width, and height attributes in
videoshortcode.(#6910): Properly forward
code-summaryas a global HTML option(#7024): Ensure HTML documents can render properly even when installed Quarto files aren't writable
(#7137): Automatically set
rel="noopener"when setting a target on external links(#7183): Mark asides that appear in the margin with a
margin-asideclass(#7187): Add
html-table-processing: noneto document- and project-level metadata to disable HTML table processing. Add{html-table-processing="none"}to a fenced div to disable HTML table processing for the elements in that div. Addhtml-table-processing: noneon knitr or jupyter cell to disable HTML table processing for the cell output content.(#7441): Links in hover box (e.g. links to DOI when hover for citations is opt-in) are now correctly process for external and new window processing (when
link-external-icon: trueandlink-external-newwindow: true).(#7542): Title block will properly present author affiliations when there is a mix of authors with affiliations and authors without affiliations
Ensure that code annotation buttons are not selectable text.
(#7364): Restore support for
layout-alignattribute in panels(#8032): Fix layout issue when margin footnotes are contained on a list item inside a callout.
(#7153): Fix layout issue when margin footnotes are contained in a blockquote.
Appendix
(#6783): Add additional CC licenses, improve link text
(#5685): Provide consistent ids for appendix sections
RevealJS Format
(#1943): Allow setting
code-block-heightin presentation front matter.(#3671): Remove untitled slides from the table of contents.
(#5210): Update to Bootstrap 5.2.2
(#5546): Images inside links can't be stretched, and so auto-stretch feature now ignores them.
(#5783): Ensure fenced code blocks work with line numbers.
(#6120):
pdf-max-pages-per-slideis now correctly settingpdfMaxPagesPerSlideconfig for RevealJS.(#6800): Move automatically-added content (slide footers, etc) to top-level of DOM when last slide is
hidden, to avoid inadvertently removing it.(#6827): Correctly layout callout in revealjs slides when changing appearance.
(#7042): Line highligthting now works correctly with code annotation.
(#7104): Line highlighting progressive reveal now correctly has code annotation anchor on the right.
(#7366):
smaller: truenow applies correctly on nested slides.(#7394): Fix issue with mermaid diagrams in revealjs slides when
output-location: fragment.(#4988): targets for links on numbered code lines are removed, as revealjs doesn't support them because navigation is done by slide only.
(#4156): footer and slide number text on slide with dark background have now an adapted text muted color based on
$dark-bg-text-color.(#7134):
.nostrechcan now be applied on image directly to opt-out Revealjs' image stretching whenauto-stretch: true(the default).
PDF Format
(#4370): Hoist code cells deep in the AST out of layout cells to avoid
\raiseboxissues with theShadedenvironment.(#5078): Ensure format-resources are copied before PDF rendering when
latex-auto-mkisfalse(#5058): Add a
before-title.texpartial to the PDF format. This partial will appear in the document premable just before the title block, allowing further customization of the document preamble. By default, this partial is empty.(#5969): Correctly detect a required rerun for biblatex when using backref link options.
(#5690): Improve validation of
pdf-engine(#6077): Make sure proof environments are tight around contents.
(#6907): Fix issue with footnote mark line processor not triggering.
(#6990): Fix an issue where underscore in
filenamecode cell attribute were not escaped.(#7175): Fix an issue with code annotations when more than one digit is used for annotation number.
(#7267): Fix issue with longtable environments interfering with the
tablecounter.(#7434): Support
resource-pathwhen resolving images in PDF(#7534): Fix issue with multiple paragraph footnotes when using
reference-location: margin.(#7568): Code annotation now works in LaTeX document when having other comments on same line.
(#6716): Fix
marginparerror when placing citations in the margin
Docusaurus Format
(#5152): Support for
code-line-numbers: truein Docusaurus output.(#6046): Fix citation regression in Docusaurus output.
(#6310): Support Docusaurus 3.0 by rendering to
.mdxby default.(#7201): Support for line highlighting using
code-line-numbers, as raw block attributes or code cell options.
Beamer Format
(#3650): Use
classoption=notheoremsto not conflict with Quarto's own theorem environments.(#5536): Correctly support Code Filename feature for Beamer output by fixing issue with float environment.
(#6041): Correctly support code block appearance options (
code-block-bgandcode-block-border-left).(#6226): Correctly detect the need for an additional compilation for TOC layout when using
lualatex(#6956): Add support
number-sectiontoformat: beamerto control whether sections are numbered.
Asciidoc Format
(#6589): Don't crash when
format: asciidocwith a missing title.(#7632): Render citations properly inside callouts
Confluence Format
(#5151): Provide an informational message about attachment delays when publishing.
(#7256): No undesired newline are created anymore in Callouts.
Website Listings
(#3933): Don't emit base Quarto CSS or theme highlighting CSS when
minimalis selected.(#4800): Add support for including an
xml-stylesheetin listings. Use thexml-stylesheet: example.xslunderfeed:to provide a path to an XSL style sheet to style your RSS feed.(#5371): Properly compute the trimmed length of descriptions included in listings.
(#5463): Error if the
contentsof a listing match no items.(#5742): Use any element to compute a description for the listing, even when there are no paragraphs.
(#5802): Don't display the string
undefinedfor date values if a listing table displays items without a date.(#5805): Update the inherited
word-break: break-wordstyle (Bootstrap) toword-break: keep-allto prevent hyphenation of words in listings.(#6029): Only use the
image-placeholderfor a listing if no other image is available.(#6091): Don't use remote / absolutes images when auto-discovering images.
(#6268): Enable listings even when
theme: none(#6407): Add supporting for the field
word-countfor listing items. It is not displayed by default.(#6408): Fix error on Windows when using yaml to create a listing with an external (e.g.
path: https://www.quarto.org)(#6447): Fix image placholder for pages with more than one listing (or a single listing passed as an array item in yaml)
(#6777): Add support for complex fields like
citation.container-titlewhen includes custom fields in listings.(#6903): Don't display the
pathfield for external paths provided in metadata files.(#6904): Within feeds, remove
index.htmlfrom urls which shouldn't include it.(#7088): Don't emit extraneous link or whitespace in default listing template.
(#7184): Properly use the boostrap variable
pagination-active-colorfor coloring pagination controls.(#7634): Use an explicit width to ensure default listing layout doesn't grow outside its desired boundss
(#7345): Improve display of categories in a table style listing
(#7699): Properly ignore non-HTML output for listings when project level renders render HTML and other formats (for example, a book of both HTML and PDF format)
(#7290): Add support for
feed:typeofmetadata, which will use only explicitly provided description metadata when generating an RSS feed. Additionally, note thatpartialfeed types will prefer to use an explicit description over the first paragraph, when a description is available.Add support for programmatically filtering content from a listing using
includeorexcludewith glob syntax to include or exclude specific items from the listing. See https://github.com/quarto-dev/quarto-cli/commit/d415d9ca5b7cb59a8a4750dd3eeb60116b931bd6s(#8197): Custom
field-typesare now correctly merged with default values for website listings.
Websites
Add support for
navbar > toggle-positionto control whether the responsive navbar toggle appears on the right or the left.Add support for setting
page-navigation: true|falsein either a page or in_metadata.yml. This allows individual pages or sections of a website to control whetherpage-navigaationappears.Add support for
bread-crumbs: true|falseto control whether bread crumbs are displayed. Add support for display of breadcrumbs on full width (non-mobile) pages whenbread-crumbsis true. Default value is true.Add support for
show-item-contextkey within thesearchkey to control whether page parents are display next to items in search results. Passtree,parent,root, or boolean (if you pass true,treeis the default).(#3493): Fix issue with website about pages complaining about missing citation when using an
@in hrefs.(#4668): Allow per page metadata (front matter or a
_metadata.ymlfile) to overide therepo-urlfor a page by providing arepo-url(#4739): Improve handling of reader mode at mobile responsive sizes
(#5204): About pages rely upon TOC being positioned right, so force that to be true
(#5212): Ensure navbar search button respects
collapse-belowand remains aligned properly(#5251): Allow individual pages to specify
image: falseto prevent image discover for Twitter and Open Graph metadata.(#5283): Add support for setting
repo-actions: falsein a document to prevent the display of repository actions on a specific page.(#5389): Allow a website project to provide a default image used in social metadata tags.
(#5503): Fix issue with markdown rendering of href text converting dashes to en/em dashes.
(#5604): Process footer content as blocks.
(#5624): Add support for localized Cookie Consent (using either the document's language or by specifying the language explicitly under the cookie consent key).
(#5625): Prefer the website image (if specified) over undecorated images that appear in the page.
(#5689): Don't use a single sidebar with an id as a global sidebar (the id explicitly means that the sidbar will match pages specifying that id or pages which the sidebar contains).
(#5756): Add
rel="..."resolution to navbar tools.(#5763): Add support for a keyboard shortcut to launch search (defaults to
for/). Usesearch>keyboard-shortcutto override with your own key(s).(#5818): Ensure that
repo-actionsfor websites (and books) appear responsively in the footer if the TOC isn't visible.(#5932): Correct Open Graph metadata key name for
og:site_name(#5964): Add support for
repo-link-targetandrepo-link-relto control the corresponding attributes of repo-action links.(#6432): Don't decorate navigation tools with external link icon (we generally don't decorate navigation chrome in this way)
(#6703): Warn users when a
themekey in a document is being ignored.(#6704): Use the correct title when there are duplicate sidebar
hreftargets(#6708): Prevent duplication of footnotes within the abstract or description within websites and books.
(#6732): Allow specifying global alt text for social metadata
(#7447): Changing the
$primarycolor in a SCSS theme will now properly change the navigation bar background color.(#7754): Use the site title as the html
titlefor a page if no other title is available.(#8083): Improve About Page layouts when a sidebar is present
(#8150): Correctly support sidebar alignment. Default sidebar text alignment to left.
(#8166): Properly discover 'image' property as a resource when using a project path.
Website Search
(#4531): Section cross references are now properly searchable
(#7105): Improve search results by raising default limit and fixing and removing warning that would appear for Algolia when limit was more than 20.
(#7150): Search keyboard shortcut will not intercept keys directed at inputs.
(#7117): Ensure that search works properly in mobile layouts when not scrolled to top of page (don't close search when scroll occurs because of keyboard being shown).
(#7796): Allow providing placeholder text using the language key
search-text-placeholder
Books
(#5454): Fix errors previewing with formats such as
asciidocare added to book projects.(#5630): Properly form sharing URL for books
(#6708): Prevent duplication of footnotes within the abstract or description within websites and books.
(#7206): Properly enabled
issue-urlfor books(#8011): Improve support for unsectioned chapters in search.
(#8145): Support localization of book tools (Download, Share, Source Code)
Publishing
(#5436): Add support for publishing to Posit Cloud.
(#5220): Properly respect
output-dirwhen publishin individual files in a default Quarto project(#4498): Better error when
quarto publish gh-pagesfails becausegh-pagesbranch does not exist onoriginremote.
Video (and Audio)
(#5496, #5847, #5268): Properly display local audio and video files with website projects (properly discover the
srcas a resource)
Preview
Display render output/progress for previews that take longer than 2 seconds
Ability to cancel an executing preview from within the progress UI
Automatically render missing formats (e.g. PDF, MS Word) on the fly
Correct detection of Hugo project type from
hugo.toml(in addition to already supportedconfig.toml)Only re-use Jupyter kernels for languages that explicitly opt into it
(#4801): Provide a more specific error upon a directory preview of a default project type without a root index file
(#5882): Disable browser cache using
Cache-Controlheader config in the viewer redirect for PDF preview, correctly allowing a HTML preview later on same port.
Jupyter
Support for executing inline expressions (e.g.
`{python} x`)Improved detection/exclusion of spurious matplotlib plain text output
Correctly exclude
idfields when converting Colab notebooks to qmd.More thorough cleaning out of text artifacts created by matplotlib intermediate statements.
Added
ipynb-shell-interactivityoption (enables specification of IPythonInteractiveShell.ast_node_interactivityoption)Only search for Julia conda installation when the engine language is Julia
Support for
plotly-connectedoption to determine where Plotly is embedded or loaded from CDNReduce default margins for Plotly figures (t=30,r=0,b=0,l=0)
Restart kernel daemon when non-package Python modules change
(#5051): Don't emit strong tag with trailing spaces to not confuse Jupyter MD reader.
(#6344): Somewhat improve the error message in case of YAML parsing errors in metadata of Python code cells.
(#6367): Fix bug with nested code cells in the generation of Jupyter notebook from .qmd files.
(#6393): Search
JULIA_HOMEfor Julia-specific Python installations.(#7016): Ignore directories for which we don't have permissions when searching for unactivated environments.
(#7302): Avoid name collisions when embedding output from multiple notebooks in a Quarto document
(#7512): Improved error message listing known kernels, when a kernel set with
jupyterkey in YAML is not found.(#7548): Don't use
fig_format="png"in Julia's CairoMakie because of interaction withdisplay()(#7607): Make
output: asisbehave the same way as theknitrengine, emitting div enclosures when necessary.(#5363): Fix issue caused by Quarto incorrectly using some headings as a title when reading notebooks.
(#6411): Don't perform notebook title fixup if the project is providing a title.
Knitr
(#4735): Special
verbatimandembedlanguage engine for knitr's chunk are now better supported, including with special quarto cell option likeecho: fenced.(#5506): Fix error in if-statement when
knitr::asis_output(x)is used withlength(x) != 1(author: @rcannood).(#6775): Avoid duplicating special internal
tools:quartoR environment used for makingojs_define()accessible during knitting.(#6792):
fig-aspprovided at YAML config level now correctly work to setfig.aspchunk option in knitr.(#7002):
layout-valignis correctly forwarded to HTML to tweak vertical figure layout alignment for computational figures.(#5994): Options like
includeorechoforojsormermaidcells are now correctly handled with knitr engine.(#4869):
sqlcell output has now correct Quarto treatment so that specific features likecolumn: marginworks.(#7600):
output: asisnow correctly don't emit.cell-output-displaydiv around cell outputs of classknit_asis.(#7877):
crop: falsechunk options allows to opt out (per chunk or globally) automatic cropping in PDF whenpdfcropandghostscriptare detected. This complements knitr's waycrop: null.(#7943): Internal Quarto R function should not leak to user's global environment.
(#7029): Fix issue with some encoding while reading configuration in R.
OJS engine
Update observablehq's runtime to version 5.6.0.
(#4927): Add support for
code-summaryoption in OJS code cells.(#5215): Report CORS requests as plain text when serving single-file previews.
(#6267): Fix error message when running in
file://.(#7537): Code annotations works better with OJS cells.
(#7747): Fix
FileAttachmentpath resolution to work withrevealjsformat (and more generally, URLs that have a non-empty hash).(#8071): Add support to
hugo-mdas an output format.
Mermaid diagrams
Upgrade to 10.2.0-rc.2
(#5426): Don't escape mermaid output in markdown formats (author: @rcannood).
Code Annotations
(#5339): Improve behavior of code annotations when present on scrollable slides
(#6016): Ensure that annotations are on the correct line in Safari
(#6385): Add support for code annotation in fenced code cells
(#7056): Only make content of the hover annotation scrollable if it necessary
(#7435): Use
#as a fallback comment character for unknown languagesAdd support for OCaml code annotations
Author and Affiliations
Add support for specifying author
roles, with optional support for degree of contribution and automatic normalization of CreDiT roles, when applicable.Improved support for affiliation metadata, including
ringgold,isni,rorAdd support for
funding, including support for simple strings or funding includingsource,recipient, andinvestigator.sourceandrecipientmay -be one or more simple strings,refs to an author or affiliation id, or an object following theinstitutionschema.(#5764): Add support for affiliations to include a
groupproperty to represent the team or research group within the affiliation(#6068): Properly display author names in default commonmark and gfm output
(#6138): Add support for
degreesto specify academic titles or professional certifications displayed following a personal name (for example, "MD", "PhD").(#6139): For markdown output that will not include yaml front matter, still perform author normalization. When
yaml_metadata_blockis enabled (or for pandoc markdown) do not normalize author front matter since that will result in extraneous author keys.
Lua filters
Add support for relative paths in
require()calls.Add support
quarto.doc.add_resourceandquarto.doc.add_supporting.add_resourcewill add a resource file to the current render, copying that file to the same relative location in the output directory.add_supportingwill add a supporting file to the current render, moving that file file to the same relative location in the output directory.(#5242): Add line numbers to error messages.
(#5461): ensure return type of
stripTrailingSpaceis alwayspandoc.List.(#5466): Provide global environment
_Gto user filters.(#6211): Improve error message when a JSON filter (or a potentially misspelled Lua filter from an extension) is not found.
(#6215): Add
quarto.utils.string_to_inlinesandquarto.utils.string_to_blocksto Lua API to convert a string to a list of inlines or blocks taking into account quarto's AST structure.(#6289): allow
markdownToInlinesto take empty string.(#6935): Add isGithubMarkdownOutput() to quarto.format API.
(#6935): render callouts to
gfmusing GitHub's syntax.(#7067): Add new entry points to user Lua filters. See https://quarto.org/docs/prerelease/1.4/lua_changes.html.
(#7083): Separate custom node handlers for Span and Div nodes, enabling conditional content spans (author: @knuesel)
Debian Installer
(#3785): Recommend installation of
unzip, which is used when installed extensions.(#5167): Don't fail installation if symlink cannot be created in path.
Citable Articles
(#6766): Add
idas valid CSL property when specifying a documents citation metadata.
Crossrefs
(#2551): Support crossreferenceable figures without captions.
(#6620): Introduce
FloatRefTargetAST nodes that generalize crossref targets to include figures, tables, and custom floating elements.(#7200): Support Unicode in subref labels.
Input format
(#7905): Use
html+raw_htmlas input format when processing HTML rawblocks for tables to avoid Pandoc converting SVG elements to images.
Extensions
When installing an extension, offer to open documentation explaining usage.
(#4889): Improve error message when attempting to create a duplicate extension
(#6759): Properly support format extensions controlling the order of filters that they use
(#7375): Updating extensions will now remove files that are not present in newer versions of an extension.
(#7886): Better support installation of extensions and usage of templates from repos which have been renamed.
(#7909): Properly resolve filter extensions even when a directory of the same name exists.
Other Fixes and Improvements
Exit if project pre or post render script fails
Support
--output-dirfor rendering individual files.Use InternalError in typescript code, and offer a more helpful error message when an internal error happens.
(#1173): Allow specifying margin caption location on a per cell basis
(#1237): Allow
includeshortcodes to be resolved from inside non-executable code cells and metadata blocks.(#1392): Add tools and LaTeX information to
quarto checkoutput.(#2214, reopened): don't report a non-existing version of Google Chrome in macOS.
(#3599, #5870): Fix hash issue causing unexpected render when
freezeis activated on Windows but re-rendered on Linux (e.g. in Github Action).(#4614): Correctly remove empty mediabag directory in remote drives.
(#4673): Quarto now report in check and error message if rmarkdown R package minimal requirement (>= 2.3) is not fullfilled, and it will ask to update the package.
(#4820): Add support for setting the Giscus light/dark themes.
(#5377): support
from:formats correctly.(#5421): Correct
quarto --helpcommand to provide correct commands and descriptions(#5444): Introduce a build command
make-installer-dirto better support third party packaging without dependencies. Fine tuning of code/patch provided in https://github.com/conda-forge/quarto-feedstock/pull/7.(#5748): Don't cleanup shared lib_dir files when using
embed-resourceswithin a project(#5755): Allow document metadata to control conditional content.
(#5785): Don't process juptyer notebook markdown into metadata when embedding notebooks into documents.
(#5902): Support paired shortcode syntax.
(#6013): Don't error if citation is passed as a boolean value in metadata via flags
(#6042): Correctly support empty lines in YAML blocks.
(#6142): Properly respect
DENO_DIRwhen set(#6154):
quarto check knitrdoes not fail anymore when user's.Rprofilecontainscat()calls.(#6178): When
QUARTO_LOG_LEVEL=DEBUG, information about search for a R binary will be shown.(#6207): When QUARTO_R is set to a non-existing path, a warning is now thrown like with QUARTO_PYTHON. Quarto still fallback to search a working R version.
(#6244): Code annotation now works for executable code cells using
echo: fenced. Also it now supports HTML and Markdown code cells.(#6269): Fix issue with YAML validation where the annotated value was incorrectly built.
(#6487): Fix
serviceworkerscheck inhtmlDependencyto look at the correct key.(#6568): Trim file extension in data URI that might have been inadvertently added by Pandoc.
(#6620): Rewrite Crossreferenceable figure support. See the prerelease documentation for more information.
(#6697): Fix issue with outputing to stdout (
quarto render <file> -o -) on Windows.(#6705): Fix issue with gfm output being removed when rendered with other formats.
(#6746): Let stdout and stderr finish independently to avoid deadlock.
(#6807): Improve sourcemapping reference cleanup in generated CSS files.
(#6825): Show filename when YAML parsing error occurs.
(#6836): Fix missing
docxformat forabstractkey in reference schema.(#7013): Improve error message when there is an issue finding or running R and add more verbosity in verbose mode.
(#7032):
quartois now correctly working when installed in a folder with spaces in path.(#7131): Fix typo in ISBN entry for JATS subarticle template (author: @jasonaris).
(#7252): Improve handling with
tlmgrof some mismatched LaTeX support files, associated withexpl3.styloading.(#7502): Correct
execute-debughelp text(#7674): Configure font paths for TinyTeX after installation so that
xetexcan find custom fonts correctly.(#7675): On Windows,
quarto install tinytexwill install TinyTeX to the directory defined by the environment variableProgramDatawhenAPPDATAis not a suitable location for TeX Live.(#8086): Add support for indexing array metadata in
metashortcode.(#8245): On Windows, prevent Quarto error due to access issue when trying to read codepage from registry.