write-vignette
关于
This skill helps developers create R package vignettes using R Markdown or Quarto. It covers setup, YAML configuration, code chunks, building/testing, and CRAN requirements. Use it for adding tutorials, documenting multi-function workflows, creating guides, or meeting CRAN documentation needs.
快速安装
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/write-vignette在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
書示例
立 R 包之長文示例。
用
- 為包加「速啟」教→用
- 錄跨多函之複工流→用
- 立域指(如統法)→用
- CRAN 呈須超函助頁之用面文→用
入
- 必:含欲錄函之 R 包
- 必:示例題與目
- 可:式(R Markdown 或 Quarto,默 R Markdown)
- 可:示例需外數或 API 否
行
一:建示例檔
usethis::use_vignette("getting-started", title = "Getting Started with packagename")
得:vignettes/getting-started.Rmd 建附 YAML 前綴。knitr 與 rmarkdown 加 DESCRIPTION 之 Suggests。vignettes/ 目存。
敗:usethis::use_vignette() 敗→驗工目為包根(含 DESCRIPTION)。knitr 未裝→先 install.packages("knitr")。手建:手建 vignettes/ 目與檔,確 YAML 前綴含三 %\Vignette* 條。
二:書示例容
---
title: "Getting Started with packagename"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Getting Started with packagename}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
## Introduction
Brief overview of what the package does and who it's for.
## Installation
```r
install.packages("packagename")
library(packagename)
Basic Usage
Walk through the primary workflow:
# Load example data
data <- example_data()
# Process
result <- main_function(data, option = "default")
# Inspect
summary(result)
Advanced Features
Cover optional or advanced functionality.
Conclusion
Summarize and point to other vignettes or resources.
得:示例 Rmd 含 Introduction、Installation、Basic Usage、Advanced Features、Conclusion 節。碼例用包出函生可見出。
敗:例行敗→驗包以 `devtools::install()` 裝。確例用包名於 `library()`(非 `devtools::load_all()`)。須外資函用 `eval=FALSE` 示碼不行。
### 三:配碼塊
按用之塊選:
```r
# Standard evaluated chunk
{r example-basic}
result <- compute_something(1:10)
result
# Show code but don't run (for illustrative purposes)
{r api-example, eval=FALSE}
connect_to_api(key = "your_key_here")
# Run but hide code (show only output)
{r hidden-setup, echo=FALSE}
library(packagename)
# Set global options
{r setup, include=FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 7,
fig.height = 5
)
得:設塊附 include=FALSE 設全選(collapse、comment、fig.width、fig.height)。塊宜配:eval=FALSE 為示碼、echo=FALSE 為隱設、標塊為交互例。
敗:塊選未生效→驗法用 {r chunk-name, option=value}(逗分、邏值無引)。設塊置文頂以先行。
四:理外依
需網或可包之示例:
{r check-available, include=FALSE}
has_suggested <- requireNamespace("optionalpkg", quietly = TRUE)
{r use-suggested, eval=has_suggested}
optionalpkg::special_function()
長算:預算存果:
# Save pre-computed results to vignettes/
saveRDS(expensive_result, "vignettes/precomputed.rds")
# Load in vignette
{r load-precomputed}
result <- readRDS("precomputed.rds")
得:外依優處:可包以 requireNamespace() 條載、網依碼用 eval=FALSE 或 tryCatch()、貴算用預算 .rds 檔。
敗:示例於 CRAN 因可包不存敗→以條變(如 eval=has_suggested)包之。預算果→確 .rds 檔含於 vignettes/ 目附相對路。
五:建試示例
# Build single vignette
devtools::build_vignettes()
# Build and check (catches vignette issues)
devtools::check()
得:示例建無誤。HTML 出可讀。
敗:
- 缺 pandoc:
.Renviron設RSTUDIO_PANDOC - 包未裝:先
devtools::install() - 缺 Suggests:裝 DESCRIPTION Suggests 中包
六:包察驗
devtools::check()
示例察:建正、不過久、無誤。
得:devtools::check() 過無示例誤或警。示例於 CRAN 時內建(典 60 秒內)。
敗:示例致察敗→常修:DESCRIPTION 加缺 Suggests、慢塊 eval=FALSE 減建時、確 VignetteIndexEntry 配題。別行 devtools::build_vignettes() 隔示例特誤。
驗
- 示例以
devtools::build_vignettes()建無誤 - 諸碼塊行正
- VignetteIndexEntry 配題
-
devtools::check()過無示例警 - 示例於 pkgdown 站文現(若應)
- 建時合理(CRAN < 60 秒)
忌
- VignetteIndexEntry 不配:YAML 中索引條須配欲用見於
vignette(package = "pkg")者 - 缺
vignetteYAML 塊:三%\Vignette*行皆須 - 示例 CRAN 過慢:預算或貴行用
eval=FALSE - Pandoc 未尋:確
RSTUDIO_PANDOC環變設 - 自參包:示例用
library(packagename)非devtools::load_all()
參
write-roxygen-docs- 函級文補示例教build-pkgdown-site- 示例現於 pkgdown 站為文submit-to-cran- CRAN 有特示例要create-quarto-report- Quarto 為 R Markdown 示例之替
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
