Quarto
This page covers the requirements and internals of deploying Quarto content to ricochet.
Project requirements
Section titled “Project requirements”Quarto content items share the same dependency requirements as their underlying language runtime. Refer to the relevant language page 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”Quarto content items can be deployed 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 automatically serve their rendered output.
To expose the rendered HTML, add a [static] section to your _ricochet.toml:
[static]index = "index.html"output_dir = "_docs"The site will be available at /static/{item-id}.
See the Static Sites page for full configuration details.
How ricochet runs Quarto content
Section titled “How ricochet runs Quarto content”Quarto discovery
Section titled “Quarto discovery”Ricochet locates the Quarto binary on the host in the following order:
PATH— ifquartois found on the systemPATH, it is used directly./opt/quarto— checked as a standard installation location./opt/quarto-{version}— broader search under/opt/for versioned Quarto installations.
Quarto sites and project entrypoints
Section titled “Quarto sites and project entrypoints”When the entrypoint is _quarto.yml, ricochet renders the parent directory rather than the file itself.
This supports Quarto projects such as websites and books.
Running quarto-r
Section titled “Running quarto-r”Ricochet runs:
quarto render <entrypoint>The QUARTO_R environment variable is set to the R binary discovered via R version discovery.
Running quarto-r-shiny
Section titled “Running quarto-r-shiny”Ricochet runs:
quarto serve <entrypoint>The QUARTO_R environment variable is set to the R binary discovered via R version discovery.
Running quarto-jl
Section titled “Running quarto-jl”Ricochet runs:
quarto render <entrypoint>The QUARTO_JULIA environment variable is set to the Julia binary discovered via Julia version discovery.
Running quarto-py
Section titled “Running quarto-py”Ricochet runs:
quarto render <entrypoint>Python version matching follows the same rules as other Python content, using .python-version and the environment restored by uv sync.
See Python deployment for details on version discovery and environment restoration.
Ricochet points Quarto at the restored virtual environment by setting the following 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 |
The virtual environment’s bin/ directory is also prepended to PATH.