Skip to content
cccskills
FreePublished on GitHub

quarto-authoring

Use when the user is explicitly working with Quarto, .qmd files, _quarto.yml, Quarto projects, or Quarto features such as callouts, cross-references, citations, Mermaid diagrams, extensions, websites, books, presentations, and reports. Also use for explicit migration from or comparison with R Markdown, bookdown, blogdown, xaringan, distill, or Jupyter notebooks to Quarto. Do not use for general R Markdown or related-format questions unless Quarto or migration to Quarto is explicitly mentioned.

The English summary is being prepared. Showing the original description.

See how to install

Files included (32)

  • SKILL.md8.4 KB
  • assets/_quarto.yml609 B
  • assets/template_dual.qmd3.8 KB
  • assets/template_html.qmd2.6 KB
  • assets/template_report.qmd6.4 KB
  • assets/template_typst.qmd2.7 KB
  • README.md9.0 KB
  • references/callouts.md3.3 KB
  • references/citations.md4.9 KB
  • references/code-cells.md7.8 KB
  • references/conditional-content.md4.7 KB
  • references/conversion-blogdown.md6.5 KB
  • references/conversion-bookdown.md5.2 KB
  • references/conversion-distill.md5.7 KB
  • references/conversion-jupyter.md1.3 KB
  • references/conversion-rmarkdown.md5.6 KB
  • references/conversion-xaringan.md5.4 KB
  • references/cross-references.md5.8 KB
  • references/diagrams.md4.8 KB
  • references/divs-and-spans.md4.0 KB
  • references/engines.md3.8 KB
  • references/extensions.md5.5 KB
  • references/figures.md5.2 KB
  • references/layout.md6.1 KB
  • references/markdown-linting.md1.9 KB
  • references/quarto_quick_reference.md7.3 KB
  • references/shortcodes.md5.1 KB
  • references/tables.md6.3 KB
  • references/yaml-front-matter.md6.5 KB
  • scripts/create_quarto.py4.9 KB
  • scripts/render_all.py4.8 KB
  • scripts/validate_yaml.py5.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Quarto Authoring

This skill is based on Quarto CLI v1.9.36 (2026-03-24).

When to Use What

Task: Write a new Quarto document Use: Follow "QMD Essentials" below, then see specific reference files

Task: Add cross-references Use: references/cross-references.md

Task: Configure code cells Use: references/code-cells.md

Task: Add figures with captions Use: references/figures.md

Task: Create tables Use: references/tables.md

Task: Add citations and bibliography Use: references/citations.md

Task: Add callout blocks Use: references/callouts.md

Task: Add diagrams (Mermaid, Graphviz) Use: references/diagrams.md

Task: Control page layout Use: references/layout.md

Task: Use shortcodes Use: references/shortcodes.md

Task: Add conditional content Use: references/conditional-content.md

Task: Use divs and spans Use: references/divs-and-spans.md

Task: Configure YAML front matter Use: references/yaml-front-matter.md

Task: Find and use extensions Use: references/extensions.md

Task: Apply markdown linting rules Use: references/markdown-linting.md

Task: Choose or configure a compute engine (knitr, jupyter, julia) Use: references/engines.md

Migration (only when converting an existing project)

Do NOT read these references when writing new Quarto documents. Only read the one matching the source format when the user explicitly asks to convert or migrate an existing project.

QMD Essentials

Basic Document Structure

---
title: "Document Title"
author: "Author Name"
date: today
format: html
---

Content goes here.

A Quarto document consists of two main parts:

  1. YAML Front Matter: Metadata and configuration at the top, enclosed by ---.
  2. Markdown Content: Main body using standard markdown syntax.

Divs and Spans

Divs use fenced syntax with three colons:

::: {.class-name}
Content inside the div.
:::

Spans use bracketed syntax:

This is [important text]{.highlight}.

Details: references/divs-and-spans.md

Code Cell Options Syntax

A code cell starts with triple backticks and a language identifier between curly braces. Code cells are code blocks that can be executed to produce output.

Quarto uses the language's comment symbol + | for cell options. Options use dashes, not dots (e.g., fig-cap not fig.cap).

  • R, Python, Julia: #|
  • Mermaid: %%|
  • Graphviz/DOT: //|
```{language}
#| label: fig-example
#| echo: false
#| fig-cap: "A scatter plot example."

# code that produces a figure
```

Set document-level defaults in YAML front matter:

execute:
  echo: false
  warning: false

Caching --- critical engine difference: Only suggest #| cache: true for R code cells (knitr engine). Never suggest it for other language cells --- it does not work and will be silently ignored. The only correct approach is execute: cache: true in the top-level YAML front matter when using engines other than knitr. Python/Jupyter requires jupyter-cache (pip install jupyter-cache):

execute:
  cache: true

Details: references/code-cells.md

Cross-References

Labels must start with a type prefix. Reference with @:

  • Figure: fig- prefix, e.g., #| label: fig-plot → @fig-plot
  • Table: tbl- prefix, e.g., #| label: tbl-data → @tbl-data
  • Section: sec- prefix, e.g., {#sec-intro} → @sec-intro
  • Equation: eq- prefix, e.g., {#eq-model} → @eq-model
```{language}
#| label: fig-plot
#| fig-cap: "A caption for the plot."

# code that produces a figure
```

See @fig-plot for the results.

Details: references/cross-references.md

Callout Blocks

Five types: note, warning, important, tip, caution.

::: {.callout-note}
This is a note callout.
:::

::: {.callout-warning}

## Custom Title

This is a warning with a custom title.

:::

Details: references/callouts.md

Figures

![Caption text](image.png){#fig-name fig-alt="Alt text"}

Subfigures:

::: {#fig-group layout-ncol=2}
![Sub caption 1](image1.png){#fig-sub1}

![Sub caption 2](image2.png){#fig-sub2}

Main caption for the group.
:::

Details: references/figures.md

Tables

::: {#tbl-example}

| Column 1 | Column 2 |
| -------- | -------- |
| Data 1   | Data 2   |

Table caption.
:::

Details: references/tables.md

Citations

According to @smith2020, the results show...
Multiple citations [@smith2020; @jones2021].

Configure in YAML:

bibliography: references.bib
csl: apa.csl

Details: references/citations.md

Common Workflows

Creating an HTML Document

title: "My Report"
author: "Your Name"
date: today
format:
  html:
    toc: true
    code-fold: true
    theme: cosmo

Creating a PDF Document

title: "My Report"
format:
  pdf:
    documentclass: article
    papersize: a4

Creating a RevealJS Presentation

---
title: "My Presentation"
format: revealjs
---

## First Slide

Content here.

## Second Slide

More content.

Setting Up a Quarto Project

Create _quarto.yml in the project root:

project:
  type: website

website:
  title: "My Site"
  navbar:
    left:
      - href: index.qmd
        text: Home
      - href: about.qmd
        text: About

format:
  html:
    theme: cosmo

Workflow

Creating a New Document

  1. Choose Template: Select appropriate template from assets/
  2. Set Metadata: Configure title, author, date in YAML
  3. Select Format: Choose HTML or Typst (or both)
  4. Add Content: Write markdown and code chunks
  5. Render: Run quarto render document.qmd

Using the Template Script

Generate a new Quarto document:

uv run python .claude/skills/quarto/scripts/create_quarto.py \
  --output path/to/document.qmd \
  --title "My Analysis" \
  --author "Author Name" \
  --format html \
  --template analysis

Template types:

  • analysis - Data analysis with code chunks
  • report - Formal report structure
  • presentation - Slide deck (revealjs)
  • article - Academic article format

Rendering Documents

Render to default format:

quarto render document.qmd

Render to specific format:

quarto render document.qmd --to html
quarto render document.qmd --to typst

Render to all formats:

quarto render document.qmd --to all

Preview with live reload:

quarto preview document.qmd

Resources

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

duckdb

Free

This skill should be used when users need to work with the DuckDB CLI for querying, analyzing, or transforming data. Use this skill for executing SQL queries, importing/exporting data, configuring DuckDB settings, or performing database operations at the command line.

The English summary is being prepared. Showing the original description.

PovertyAction/ipa-research-data-science-hub3Updated Oct 19, 2026

Applies Innovations for Poverty Action's official brand colors and typography to any sort of artifact that may benefit from having IPA's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

The English summary is being prepared. Showing the original description.

PovertyAction/ipa-research-data-science-hub3Updated Oct 19, 2026

Draft and quality-check pages for the IPA Knowledge Hub in the site's house style. Use when creating a new .qmd Hub page from source material, adapting outside content into a Hub page, or reviewing an existing page for structure, tone, frontmatter, references, and Diátaxis fit. Replicates the quality-control workflow of IPA's Knowledge Hub Generator assistant.

The English summary is being prepared. Showing the original description.

PovertyAction/ipa-research-data-science-hub3Updated Oct 19, 2026

ruff

Free

This skill should be used when users need to lint, format, or validate Python code using the Ruff command-line tool. Use this skill for tasks involving Python code quality checks, automatic code formatting, enforcing style rules (PEP 8), identifying bugs and security issues, or modernizing Python code. This skill should be invoked PROACTIVELY whenever Python code is written or modified to ensure code quality.

The English summary is being prepared. Showing the original description.

PovertyAction/ipa-research-data-science-hub3Updated Oct 19, 2026

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.

The English summary is being prepared. Showing the original description.

PovertyAction/ipa-research-data-science-hub3Updated Oct 19, 2026

uv

Free

This skill should be used when working with Python projects that use uv for package and project management. Use this skill for running Python scripts and CLI tools with `uv run`, managing dependencies, creating projects, handling virtual environments, and executing commands within isolated project environments. Essential for projects with pyproject.toml files.

The English summary is being prepared. Showing the original description.

PovertyAction/ipa-research-data-science-hub3Updated Oct 19, 2026

See all skills by PovertyAction

Report a problem with this skill