What Languages and Output Formats Does Quarto Support?
Updated
Quarto supports four authoring languages—Python, R, Julia, and Observable JavaScript—and renders to HTML, PDF, MS Word, ePub, and more. If your workflow involves any of those languages and you need to publish articles, presentations, dashboards, websites, blogs, or books, Quarto covers the full path from code to finished document. If you work in a language outside that set, or need an output format not listed, Quarto is likely not the right fit.
Languages
Quarto is a multi-language publishing system. You can write and execute code in:
- Python — via Jupyter notebooks or plain-text Markdown
- R — executed through knitr, the same engine R Markdown uses
- Julia — executed either through the
juliaengine (using QuartoNotebookRunner.jl) or thejupyterengine (using the IJulia kernel) - Observable JavaScript — native support for Observable JS for interactive, browser-based content
A single document can mix Markdown prose with executable code blocks in any of these languages. You author either in a traditional notebook UI (like Jupyter) or in plain-text Markdown in your editor of choice.
Relationship to R Markdown
Quarto is described as a next-generation version of R Markdown from Posit. Because it uses knitr to execute R code, it can render most existing .Rmd files without modification. If you already have R Markdown documents, that's a practical migration path rather than a rewrite.
Output Formats
Quarto produces "reproducible, production quality" output in:
| Format | Typical use |
|---|---|
| HTML | Articles, websites, dashboards, blogs |
| Print-ready articles and reports | |
| MS Word | Documents for review or collaboration |
| ePub | Ebooks |
| More | Presentations, books, and other formats |
The same source document can target multiple formats by changing the format field in the YAML header—you don't rewrite content to switch outputs.
Authoring and Publishing
Two authoring modes are supported:
- Jupyter notebooks — combine notebooks with flexible options to produce production-quality output in many formats.
- Plain-text Markdown — a text representation of notebooks, written in Pandoc Markdown, including equations, citations, cross-references, figure panels, callouts, and advanced layout.
For distribution, Quarto can publish to Posit Connect, Confluence, or other publishing systems—useful for sharing knowledge organization-wide.
A Concrete Example
The following R document renders to HTML with a folded code block and a captioned figure:
---
title: "ggplot2 demo"
author: "Norah Jones"
date: "5/22/2021"
format:
html:
fig-width: 8
fig-height: 4
code-fold: true
---
The format: html key is what selects the output. Change it to pdf or docx and the same content renders to that format instead.
How to Decide
- Choose Quarto if you author in Python, R, Julia, or Observable JS and need to publish to HTML, PDF, Word, ePub, or a mix of these from one source.
- Choose Quarto if you want notebook and plain-text Markdown workflows to coexist, or if you're migrating from R Markdown and want most existing files to render unchanged.
- Look elsewhere if your primary language isn't in the supported set, or if you need an output format outside those listed—check the reference and gallery for the current format list before committing.
To verify support for your specific combination, start with the Get Started guide and test a minimal document in your language and target format.