create-quarto-report
О программе
Этот навык помогает разработчикам создавать воспроизводимые документы Quarto для отчётов, презентаций и веб-сайтов. Он охватывает конфигурацию YAML, блоки кода, форматы вывода и рендеринг в HTML/PDF/Word. Используйте его для построения анализов со встроенным кодом или для перехода с R Markdown на Quarto.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/create-quarto-reportСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
Create Quarto Report
Set up and write a reproducible Quarto document for analysis reports, presentations, or websites.
When to Use
- Creating a reproducible analysis report
- Building a presentation with embedded code
- Generating HTML, PDF, or Word documents from code
- Migrating from R Markdown to Quarto
Inputs
- Required: Report topic and target audience
- Required: Output format (html, pdf, docx, revealjs)
- Optional: Data sources and analysis code
- Optional: Citation bibliography (.bib file)
Procedure
Step 1: Create Quarto Document
Create report.qmd:
---
title: "Analysis Report"
author: "Author Name"
date: today
format:
html:
toc: true
toc-depth: 3
code-fold: true
theme: cosmo
self-contained: true
execute:
echo: true
warning: false
message: false
bibliography: references.bib
---
Got: File report.qmd exists with valid YAML frontmatter including title, author, date, format configuration, and execution options.
If fail: Validate the YAML header by checking for matching --- delimiters and correct indentation. Ensure format: key matches one of the supported Quarto output formats (html, pdf, docx, revealjs).
Step 2: Write Content with Code Chunks
## Introduction
This report analyzes the relationship between variables X and Y.
## Data
```{r}
#| label: load-data
library(dplyr)
library(ggplot2)
data <- read.csv("data.csv")
glimpse(data)
```
## Analysis
```{r}
#| label: fig-scatter
#| fig-cap: "Scatter plot of X vs Y"
#| fig-width: 8
#| fig-height: 6
ggplot(data, aes(x = x_var, y = y_var)) +
geom_point(alpha = 0.6) +
geom_smooth(method = "lm") +
theme_minimal()
```
As shown in @fig-scatter, there is a positive relationship.
## Results
```{r}
#| label: tbl-summary
#| tbl-cap: "Summary statistics"
data |>
summarise(
mean_x = mean(x_var),
sd_x = sd(x_var),
mean_y = mean(y_var),
sd_y = sd(y_var)
) |>
knitr::kable(digits = 2)
```
See @tbl-summary for descriptive statistics.
Got: Content sections contain properly formatted code chunks with {r} language identifier and #| chunk options for labels, captions, and dimensions.
If fail: Verify code chunks use the ```{r} syntax (not inline backticks), that #| options are inside the chunk (not in the YAML header), and that label prefixes match cross-reference types (fig- for figures, tbl- for tables).
Step 3: Configure Chunk Options
Common chunk-level options (use #| syntax):
#| label: chunk-name # Required for cross-references
#| echo: false # Hide code
#| eval: false # Show but don't run
#| output: false # Run but hide output
#| fig-width: 8 # Figure dimensions
#| fig-height: 6
#| fig-cap: "Caption text" # Enable @fig-name references
#| tbl-cap: "Caption text" # Enable @tbl-name references
#| cache: true # Cache expensive computations
Got: Chunk options are applied at the chunk level using #| syntax, and labels follow naming conventions required for cross-referencing.
If fail: Ensure chunk options use #| syntax (Quarto-native), not the legacy {r, option=value} R Markdown syntax. Verify that label names contain only alphanumeric characters and hyphens.
Step 4: Add Cross-References and Citations
See @fig-scatter for the visualization and @tbl-summary for statistics.
This approach follows @smith2023 methodology.
::: {#fig-combined layout-ncol=2}
{#fig-plotA}
{#fig-plotB}
Combined figure caption
:::
Got: Cross-references (@fig-name, @tbl-name) resolve to the correct figures and tables, and citations (@key) match entries in the .bib file.
If fail: Verify that referenced labels exist in code chunks with the correct prefix (fig-, tbl-). For citations, check that .bib keys match exactly (case-sensitive) and that bibliography: is set in the YAML header.
Step 5: Render the Document
quarto render report.qmd
# Specific format
quarto render report.qmd --to pdf
quarto render report.qmd --to docx
# Preview with live reload
quarto preview report.qmd
Got: Output file generated in the specified format.
If fail:
- Missing quarto: Install from https://quarto.org/docs/get-started/
- PDF errors: Install TinyTeX with
quarto install tinytex - R package errors: Ensure all packages are installed
Step 6: Multi-Format Output
format:
html:
toc: true
theme: cosmo
pdf:
documentclass: article
geometry: margin=1in
docx:
reference-doc: template.docx
Render all formats: quarto render report.qmd
Got: All specified output formats generate successfully, each with correct styling and layout for the target format.
If fail: If one format fails while others succeed, check format-specific requirements: PDF needs a LaTeX engine (install with quarto install tinytex), DOCX needs a valid reference template if specified, and format-specific YAML options must be correctly nested under each format key.
Validation
- Document renders without errors
- All code chunks execute correctly
- Cross-references resolve (figures, tables, citations)
- Table of contents is accurate
- Output format is appropriate for the audience
Pitfalls
- Missing label prefix: Cross-referenceable figures need
fig-prefix in label, tables needtbl- - Cache invalidation: Cached chunks won't re-run when upstream data changes. Delete
_cache/to force. - PDF without LaTeX: Install TinyTeX or use
format: pdfwithpdf-engine: weasyprintfor CSS-based PDF - R Markdown syntax in Quarto: Use
#|chunk options instead of{r, echo=FALSE}style
Related Skills
format-apa-report- APA-formatted academic reportsbuild-parameterized-report- parameterized multi-report generationgenerate-statistical-tables- publication-ready tableswrite-vignette- Quarto vignettes in R packages
GitHub репозиторий
Похожие навыки
content-collections
МетаЭтот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
polymarket
МетаЭтот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
creating-opencode-plugins
МетаЭтот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
sglang
МетаSGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
