How do I get started with Quarto?
Updated
Quarto is an open-source scientific and technical publishing system for creating articles, websites, blogs, books, and slides. To get started, you author documents in Jupyter notebooks or plain-text Markdown in your preferred editor, then render them into formats like HTML, PDF, MS Word, and ePub. The official Get Started and Guide pages are the intended entry points, and the Hello, Quarto examples walk through Python, R, Julia, and Observable.
What Quarto Is and What You Need
Quarto is described as a multi-language, next-generation version of R Markdown from Posit. It executes code from Python, R, Julia, and Observable, and produces reproducible, production-quality output.
Before you begin, decide two things:
- Your authoring environment — a Jupyter notebook UI, or plain-text Markdown in any editor you already use.
- Your language and output format — for example Python with HTML output, or R with PDF.
You do not need to pick a single language for everything; Quarto supports all four across the same authoring workflow.
Step 1: Read the Official Entry Points
Start with the two documentation sections the site highlights:
- Get Started — installation and a first document.
- Guide — the full authoring and publishing reference.
These are the canonical starting points rather than third-party tutorials, so version-specific behavior matches what you are running.
Step 2: Choose How You Author
Quarto supports two authoring styles, and you can move between them:
| Approach | What it looks like | When it fits |
|---|---|---|
| Jupyter notebooks | Traditional notebook UI | You already work in notebooks and want flexible render options |
| Plain-text Markdown | A .qmd-style document in your editor |
You prefer version control, diffs, and editor-based writing |
The site notes that you can author using traditional notebook UIs or with a plain-text Markdown representation of notebooks — so the same project can be handled either way.
Step 3: Work Through "Hello, Quarto"
The Hello, Quarto examples cover Python, R, Julia, and Observable. Working through at least one gives you a complete, renderable document.
A representative R example from the site shows the structure:
---
title: "ggplot2 demo"
author: "Norah Jones"
date: "5/22/2021"
format:
html:
fig-width: 8
fig-height: 4
code-fold: true
---
## Air Quality
@fig-airquality further explores the impact of temperature on ozone level.
```{r}
#| label: fig-airquality
#| fig-cap: "Temperature and ozone level."
#| warning: false
library(ggplot2)
ggplot(airquality, aes(Temp, Ozone)) +
geom_point() +
geom_smooth(method = "loess")
Note the three parts: a YAML header for metadata and format options, prose with a cross-reference (`@fig-airquality`), and a code block with `#|` options controlling the figure label, caption, and warnings.
A Julia example follows the same pattern, adding an engine declaration:
```markdown
---
title: "Plots Demo"
format:
html:
code-fold: true
engine: julia
---
## Parametric Plots
Plot function pair (x(u), y(u)). See @fig-parametric for an example.
```{julia}
#| label: fig-parametric
#| fig-cap: "Parametric Plots"
using Plots
plot(sin, x->sin(2x), 0, 2π, leg=false, fill=(0, :lavender))
**Expected result:** rendering produces an HTML document with the figure, its caption, and a working cross-reference. If a figure or reference does not appear, check that the `#| label:` value matches the `@` reference exactly.
## Step 4: Learn the Markdown Features You Will Actually Use
Quarto uses Pandoc Markdown. The site lists these capabilities as part of the core authoring model:
- Equations
- Citations
- Cross-references
- Figure panels
- Callouts
- Advanced layout
You do not need all of these on day one. Add them as your documents require them, using the Guide as reference.
## Step 5: Publish
Quarto can publish to Posit Connect, Confluence, or other publishing systems, which the site frames as a way to share knowledge organization-wide. Output formats include HTML, PDF, MS Word, and ePub.
If you are publishing internally, confirm which system your organization uses before building a workflow around one target.
## If You Are Coming From R Markdown
Quarto uses knitr to execute R code and can render most existing `.Rmd` files without modification, according to the site. That means an existing R Markdown project is a reasonable first test case: render it under Quarto and see what needs adjusting.
## Where to Get Help
The site points to several support channels:
- **FAQ** — common questions
- **Ask a Question** — community help
- **Report a Bug** — issue reporting
- **Extensions** and **Gallery** — examples and add-ons to learn from
## Common Starting Points to Watch
- **Engine mismatch:** if you declare `engine: julia` but the code is R, rendering fails. Match the engine to the code block language.
- **Cross-reference typos:** a label of `fig-airquality` must be referenced as `@fig-airquality`.
- **Format options placement:** figure sizing and code folding belong under the `format:` key in the YAML header, nested under the target format (for example `html:`).
The fastest path is: read **Get Started**, render one **Hello, Quarto** example in your language, then consult the **Guide** as you add features.