Quarto
This page covers what you need to deploy Quarto content to ricochet and how ricochet runs it.
Project requirements
Section titled “Project requirements”Quarto content items need the same dependency files as the language they run on. See the page for that language for details:
| Language | Required files | Reference |
|---|---|---|
| R | renv.lock | R deployment |
| Julia | Manifest.toml | Julia deployment |
| Python | .python-version, uv.lock | Python deployment |
Example _ricochet.toml
Section titled “Example _ricochet.toml”[content]name = "My Quarto Site"entrypoint = "_quarto.yml"access_type = "external"content_type = "quarto-r"
[language]name = "r"packages = "renv.lock"
[static]index = "index.html"output_dir = "_docs"Supported content types
Section titled “Supported content types”You can deploy Quarto content items as apps or tasks.
Content Type | Language | Description |
|---|---|---|
quarto-r-shiny | R | A Quarto document using a Shiny runtime. |
Content Type | Language | Description |
|---|---|---|
quarto-r | R | A Quarto document rendered using an R runtime. |
quarto-jl | Julia | A Quarto document rendered using a Julia runtime. |
quarto-py | Python | A Quarto document rendered using a Python runtime. |
Serving rendered output as a static site
Section titled “Serving rendered output as a static site”Quarto content items do not serve their rendered output by default.
To serve the rendered HTML, add a [static] section to your _ricochet.toml:
[static]index = "index.html"output_dir = "_docs"The site is then available at /static/{item-id}.
See the Static Sites page for all settings.
How ricochet runs Quarto content
Section titled “How ricochet runs Quarto content”Quarto discovery
Section titled “Quarto discovery”Ricochet looks for the Quarto binary on the host in this order:
PATH: ifquartois on the systemPATH, ricochet uses it./opt/quarto: the standard install location./opt/quarto-{version}: a wider search under/opt/for Quarto installs with a version in the name.
Quarto sites and project entrypoints
Section titled “Quarto sites and project entrypoints”When the entrypoint is _quarto.yml, ricochet renders the parent directory instead of the file itself.
This lets you deploy Quarto projects such as websites and books.
Running quarto-r
Section titled “Running quarto-r”Ricochet runs:
quarto render <entrypoint>Ricochet sets the QUARTO_R environment variable to the R binary it finds through R version discovery.
Running quarto-r-shiny
Section titled “Running quarto-r-shiny”Ricochet runs:
quarto serve <entrypoint>Ricochet sets the QUARTO_R environment variable to the R binary it finds through R version discovery.
Running quarto-jl
Section titled “Running quarto-jl”Ricochet runs:
quarto render <entrypoint>Ricochet sets the QUARTO_JULIA environment variable to the Julia binary it finds through Julia version discovery.
Running quarto-py
Section titled “Running quarto-py”Ricochet runs:
quarto render <entrypoint>Ricochet picks the Python version the same way as for other Python content.
It uses .python-version and the environment that uv sync restores.
See Python deployment for how ricochet finds Python and restores the environment.
Ricochet points Quarto at the restored virtual environment with these environment variables:
| Variable | Value |
|---|---|
QUARTO_PYTHON | Path to the virtual env Python binary (<bundle>/.venv/bin/python) |
VIRTUAL_ENV | Path to the virtual environment directory |
UV_PYTHON | Path to the matched system Python binary |
PYTHONUNBUFFERED | 1 |
Ricochet also adds the virtual environment’s bin/ directory to the start of PATH.