Fixed in this release
- Update Pandoc to 3.1.12.3 to remove exposure to
polyfill.io
in Pandoc’s built-in templates.
Fixed in previous releases
- (#8969): Replace
polyfill.io
with cdnjs.cloudflare.com
in MathJax usage in HTML formats.
- (#9927): Fix a regression with explicitly sized images in layouts.
- (#10091): Fix a regression with
fig-align
attributes in captionless images in PDF format.
- (#8439): ensure that lack of subject line is handled
- (#8417): Maintain a single AST element in the output cell when parsing HTML from RawBlock
- (#8490): Properly embed
qmd
cells even when they include an explicit echo
declaration.
- (#8464): Fix a regression where shortcodes were not being expanded recursively.
- (#8485): Fix a regression where shortcodes could not Unicode characters with code points above 127.
- (#8507): Fix a regression with callout rendering in
docx
.
- (#8510): Fix a regression on undocumented behavior with
sidebar.align
instead of sidebar.alignment
in YAML configuration.
- (#8514): Fix a regression where crossreferences in
number-sections: false
documents were being rendered incorrectly.
- (#8536): Fix a regression with column specifiers in
html
.
- (#8552): Fix incorrect behavior reading title from code cells in Dashboards.
- (#8555): Fix malformed HTML when outputing page navigation (books and websites).
- (#8566): Fix issues with usage of iTables in Quarto Dashboards. This includes layout issues for large or wide tables, appearance of sticky headers, as well as a hang that can occur when rendering a Dashboard using iTables 1.7.
- (#8567): Improve website search performance for large sites with long search terms.
- (#8586): Fix regression on rendering multiple embedded citations in LaTeX tables.
- (#8603): Fix a regression with multiple-column layouts and code-folding.
- (#8630): Fix a regression with latex crossref identifiers with underscores. Note that this syntax is not officially supported in Quarto, but this change reverts to the behavior in 1.3.
- (#8652): Make code cell detection in IDE tooling consistent across editor modes.
- (#8662): Do not incorrectly prevent previewing docusaurus websites without an index file.
- (#8697): Ensure that lightboxed figures with margin captions properly position the caption.
- (#8708): Resolve complex layouts in ipynbs embeds for manuscripts.
- (#8728): Don’t crash with empty floats in LaTeX format.
- (#8733): Fix regression with image-align=right in LaTeX format.
- (#8741): Fix issue where the MacOS installer would incorrectly report that Rosetta is required (it is not).
- (#8749): Fix bundle creation for publishing Quarto projects to Posit Connect using
quarto publish connect
.
- (#8785): Fix issue with noncentered, non-referenceable subfigures in LaTeX format.
- (#8795): Fix issue with select controls appearing in Dashboard toolbar.
- (#8798): Fix issue with duplicate level 1 headings in rendered
ipynb
notebooks.
- (#8818): Fix alignment of
right
items in Navbars.
- (#8852): Do not strip
index.html
from external links.
- (#8854): Don’t allow margin footnotes to break
hover-citations
- (#8858): Fix issue rendering markdown in bread-crumbs
- (#8843): Fix issue in books when some R code cells emits LaTeX dependencies to be included in the LaTeX preamble.
- (#8857): Fix issue with
format: dashboard
using Plotly in Jupyter on Windows.
- (#8937): Fix unix
quarto
launcher in the case of paths with spaces.
- (#9076): Fix rendering of code cells with
layout-ncol
and column
settings in html
format.
- (#9200): Fix regression with
tbl-colwidths
outside of a cross-referenceable table element.
- (#9335): Fix bad escaping of escaped inline code cells inside code blocks.
- (#9356): Don’t process column classes for figures inside the About divs.
- (#9535): Fix
fig-alt
regression from previous 1.4 patch release.
- (#9550): Don’t crash when subcaptions are incorrectly specified with
fig-subcap: true
but no embedded subcaptions.
- (#9593): Fix regression with
column-margin
when used in spans in a paragraph.
- (#9602): Fix regression with parsed HTML tables not being correcty included in various format like pptx and typst.
- (#8258): Quarto now works again with R 4.1.3 and previous versions.
- (#9704): Fix regression with PDF export feature in Revealjs - it now works again like in 1.3.
- (#9734): Fix issue with unlabeled tables and
tbl-cap-location
information.
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
id
property will no longer be used as a global sidebar. It will instead be used as a sidebar for only pages which specify that id
or pages linked to from the sidebar.
Appendix
- (#6783): Add additional CC licenses, improve link text
- (#5685): Provide consistent ids for appendix sections
Website Listings
- (#3933): Don’t emit base Quarto CSS or theme highlighting CSS when
minimal
is selected.
- (#4800): Add support for including an
xml-stylesheet
in listings. Use the xml-stylesheet: example.xsl
under feed:
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
contents
of 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
undefined
for date values if a listing table displays items without a date.
- (#5805): Update the inherited
word-break: break-word
style (Bootstrap) to word-break: keep-all
to prevent hyphenation of words in listings.
- (#6029): Only use the
image-placeholder
for 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-count
for 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-title
when includes custom fields in listings.
- (#6903): Don’t display the
path
field for external paths provided in metadata files.
- (#6904): Within feeds, remove
index.html
from 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-color
for 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:type
of metadata
, which will use only explicitly provided description metadata when generating an RSS feed. Additionally, note that partial
feed 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
include
or exclude
with glob syntax to include or exclude specific items from the listing. See https://github.com/quarto-dev/quarto-cli/commit/d415d9ca5b7cb59a8a4750dd3eeb60116b931bd6s
- (#8197): Custom
field-types
are now correctly merged with default values for website listings.
Websites
- Add support for
navbar > toggle-position
to control whether the responsive navbar toggle appears on the right or the left.
- Add support for setting
page-navigation: true|false
in either a page or in _metadata.yml
. This allows individual pages or sections of a website to control whether page-navigaation
appears.
- Add support for
bread-crumbs: true|false
to control whether bread crumbs are displayed. Add support for display of breadcrumbs on full width (non-mobile) pages when bread-crumbs
is true. Default value is true.
- Add support for
show-item-context
key within the search
key to control whether page parents are display next to items in search results. Pass tree
, parent
, root
, or boolean (if you pass true, tree
is 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.yml
file) to overide the repo-url
for a page by providing a repo-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-below
and remains aligned properly
- (#5251): Allow individual pages to specify
image: false
to prevent image discover for Twitter and Open Graph metadata.
- (#5283): Add support for setting
repo-actions: false
in 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
f
or /
). Use search
> keyboard-shortcut
to override with your own key(s).
- (#5818): Ensure that
repo-actions
for 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-target
and repo-link-rel
to 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
theme
key in a document is being ignored.
- (#6704): Use the correct title when there are duplicate sidebar
href
targets
- (#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
$primary
color in a SCSS theme will now properly change the navigation bar background color.
- (#7754): Use the site title as the html
title
for 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
asciidoc
are 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-url
for 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-dir
when publishin individual files in a default Quarto project
- (#4498): Better error when
quarto publish gh-pages
fails because gh-pages
branch does not exist on origin
remote.
Video (and Audio)
- (#5496, #5847, #5268): Properly display local audio and video files with website projects (properly discover the
src
as 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 supported config.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-Control
header 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
id
fields when converting Colab notebooks to qmd.
- More thorough cleaning out of text artifacts created by matplotlib intermediate statements.
- Added
ipynb-shell-interactivity
option (enables specification of IPython InteractiveShell.ast_node_interactivity
option)
- Only search for Julia conda installation when the engine language is Julia
- Support for
plotly-connected
option to determine where Plotly is embedded or loaded from CDN
- Reduce 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_HOME
for 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
jupyter
key in YAML is not found.
- (#7548): Don’t use
fig_format="png"
in Julia’s CairoMakie because of interaction with display()
- (#7607): Make
output: asis
behave the same way as the knitr
engine, 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
verbatim
and embed
language engine for knitr’s chunk are now better supported, including with special quarto cell option like echo: fenced
.
- (#5506): Fix error in if-statement when
knitr::asis_output(x)
is used with length(x) != 1
(author: @rcannood).
- (#6775): Avoid duplicating special internal
tools:quarto
R environment used for making ojs_define()
accessible during knitting.
- (#6792):
fig-asp
provided at YAML config level now correctly work to set fig.asp
chunk option in knitr.
- (#7002):
layout-valign
is correctly forwarded to HTML to tweak vertical figure layout alignment for computational figures.
- (#5994): Options like
include
or echo
for ojs
or mermaid
cells are now correctly handled with knitr engine.
- (#4869):
sql
cell output has now correct Quarto treatment so that specific features like column: margin
works.
- (#7600):
output: asis
now correctly don’t emit .cell-output-display
div around cell outputs of class knit_asis
.
- (#7877):
crop: false
chunk options allows to opt out (per chunk or globally) automatic cropping in PDF when pdfcrop
and ghostscript
are detected. This complements knitr’s way crop: 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-summary
option 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
FileAttachment
path resolution to work with revealjs
format (and more generally, URLs that have a non-empty hash).
- (#8071): Add support to
hugo-md
as 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 languages
- Add 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
, ror
- Add support for
funding
, including support for simple strings or funding including source
, recipient
, and investigator
. source
and recipient
may -be one or more simple strings, ref
s to an author or affiliation id, or an object following the institution
schema.
- (#5764): Add support for affiliations to include a
group
property 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
degrees
to 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_block
is 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_resource
and quarto.doc.add_supporting
. add_resource
will add a resource file to the current render, copying that file to the same relative location in the output directory. add_supporting
will 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
stripTrailingSpace
is always pandoc.List
.
- (#5466): Provide global environment
_G
to 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_inlines
and quarto.utils.string_to_blocks
to Lua API to convert a string to a list of inlines or blocks taking into account quarto’s AST structure.
- (#6289): allow
markdownToInlines
to take empty string.
- (#6935): Add isGithubMarkdownOutput() to quarto.format API.
- (#6935): render callouts to
gfm
using 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
id
as valid CSL property when specifying a documents citation metadata.
Crossrefs
- (#2551): Support crossreferenceable figures without captions.
- (#6620): Introduce
FloatRefTarget
AST nodes that generalize crossref targets to include figures, tables, and custom floating elements.
- (#7200): Support Unicode in subref labels.
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-dir
for 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
include
shortcodes to be resolved from inside non-executable code cells and metadata blocks.
- (#1392): Add tools and LaTeX information to
quarto check
output.
- (#2214, reopened): don’t report a non-existing version of Google Chrome in macOS.
- (#3599, #5870): Fix hash issue causing unexpected render when
freeze
is 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 --help
command to provide correct commands and descriptions
- (#5444): Introduce a build command
make-installer-dir
to 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-resources
within 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_DIR
when set
- (#6154):
quarto check knitr
does not fail anymore when user’s .Rprofile
contains cat()
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
serviceworkers
check in htmlDependency
to 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
docx
format for abstract
key in reference schema.
- (#7013): Improve error message when there is an issue finding or running R and add more verbosity in verbose mode.
- (#7032):
quarto
is 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
tlmgr
of some mismatched LaTeX support files, associated with expl3.sty
loading.
- (#7502): Correct
execute-debug
help text
- (#7674): Configure font paths for TinyTeX after installation so that
xetex
can find custom fonts correctly.
- (#7675): On Windows,
quarto install tinytex
will install TinyTeX to the directory defined by the environment variable ProgramData
when APPDATA
is not a suitable location for TeX Live.
- (#8086): Add support for indexing array metadata in
meta
shortcode.
- (#8245): On Windows, prevent Quarto error due to access issue when trying to read codepage from registry.