FAQ for R Markdown Users
What can I use Quarto for?
Quarto® is an open-source scientific and technical publishing system built on Pandoc. You can weave together narrative text and code to produce elegantly formatted output as documents, web pages, blog posts, books and more.
Quarto sounds similar to R Markdown. What is the difference and why create a new project?
At its core, Quarto works the same way as R Markdown:
The goal of Quarto is to make the process of creating and collaborating on scientific and technical documents dramatically better. Quarto combines the functionality of R Markdown, bookdown, distill, xaringian, etc into a single consistent system with “batteries included” that reflects everything we’ve learned from R Markdown over the past 10 years.
The number of languages and runtimes used for scientific discourse is very broad (and the Jupyter ecosystem in particular is extraordinarily popular). Quarto is at its core multi-language and multi-engine (supporting Knitr, Jupyter, and Observable today and potentially other engines tomorrow).
On the other hand, R Markdown is fundamentally tied to R which severely limits the number of practitioners it can benefit. Quarto is Posit’s attempt to bring R Markdown to everyone! Unlike R Markdown, Quarto doesn’t have a dependency or requirement for R. Quarto was developed to be multilingual, beginning with R, Python, Javascript, and Julia, with the idea that it will work even for languages that don’t yet exist.
While it is a “new” system, it should also be noted that it is highly compatible with existing content: you can render most R Markdown documents and Jupyter notebooks unmodified with Quarto. The concept is to make a major, long term investment in reproducible research, while keeping it compatible with existing formats and adaptable to the various environments users work in.
Is R Markdown going away? Will my R Markdown documents continue to work?
R Markdown is not going away! R Markdown is used extensively and continues to work well. It will continue to be actively supported. We’re not leaving R Markdown, we’re expanding our scope. Over the years there have been many feature requests, and rather than implementing them all in R Markdown, for certain features we may refer you to Quarto. Everything that is currently in R Markdown will continue to work and be supported. There are no plans for deprecation.
Read more about this in Yihui Xie’s blog post With Quarto Coming, is R Markdown Going Away? No.
Should I switch from R Markdown to Quarto?
If you like using R Markdown, there’s no need to switch! R Markdown will continue to be supported and work as it always has been. You’re welcome to try Quarto if you like, but there’s no need to switch. Some new features may only exist in Quarto, so if you want to use those, then that’s where you would give those a try.
We should emphasize that switching is not imperative. While we don’t plan on major feature initiatives in R Markdown and related packages, we are going to continue to maintain them (smaller improvements and bug fixes) for a long time to come. Furthermore, since Rmd files can in most cases be rendered without modification by Quarto, you can continue using R Markdown and the switching cost will still be minimal whenever you decide to do it.
I use X (bookdown, blogdown, etc.). What is the Quarto equivalent?
Here are the Quarto equivalents for various packages and features of the R Markdown ecosystem (in some cases Quarto equivalents are not yet available but will be later this year):
Feature | R Markdown | Quarto |
---|---|---|
Basic Formats | ||
Beamer | ||
PowerPoint | ||
HTML Slides | ||
Advanced Layout | ||
Cross References | ||
Websites & Blogs | ||
Books | ||
Interactivity | Shiny Documents | Quarto Interactive Documents |
Journal Articles | rticles | Quarto Journal Articles |
Paged HTML | pagedown | Planned |
Dashboards | flexdashboard | Quarto Dashboards |
Interactive Tutorials | learnr | Quarto Live Extension |
Can you create custom formats for Quarto like you can for R Markdown?
Quarto offers an Extension mechanism to add features to a format using Shortcodes or Filters but also create custom formats. A major difference with custom output format in R Markdown is that Quarto Extension does not use R but Lua, for example if you need to add some logic behind custom metadata fields. See Developing with Lua to get started if you need use it your extension. Some of the features from R Markdown custom formats like customizing knitting behavior can also now be done in YAML with execution options.
As example of custom formats for Quarto, Journal Articles for Quarto are port of some custom output format inside the rticles R package. Extensions lives in Quarto Journals Github organization, and you can find information on how to customize templates and manage Authors for you format.
If you are an advanced developer of R Markdown custom format, the Extension mechanism may still have limitation (like pre and post processor). The Extension feature in Quarto will be improved over time - do not hesitate to share with us your use case or wished in our Discussion Board.
When would be a good time to start new projects in Quarto rather than R Markdown?
Quarto v1.0 was announced at rstudio::conf(2022). This is the first stable release which is already an excellent foundation for starting new projects with Quarto or migrating existing R Markdown projects (if you are so inclined). If you start using Quarto, please do stay updated with latest release and changes as development is very active.
Does the RStudio IDE support Quarto?
Yes! You need to use RStudio v2022.07 or a later version, which includes support for editing and preview of Quarto documents.
You can download the latest release (v2023.12) of RStudio from https://posit.co/download/rstudio-desktop/.
Does Posit Connect support Quarto?
Yes! You can publish Quarto content to Posit Connect v2021.08.0 or later. Quarto has to be enabled as documented in the Posit Connect admin guide. Connect’s user documentation refers to Quarto.org docs on how to publish from the RStudio IDE. To publish Python-based Quarto content, you can use the rsconnect-python CLI from various locations, including VSCode, JupyterLab or the terminal.