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 julia engine (using QuartoNotebookRunner.jl) or the jupyter engine (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
PDF 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:

  1. Jupyter notebooks — combine notebooks with flexible options to produce production-quality output in many formats.
  2. 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.