build-pkgdown-site
について
このスキルは、Rパッケージ向けのpkgdownドキュメントサイトを構築し、GitHub Pagesへデプロイします。設定、テーマ設定、記事の構成、ブランチベースやGitHub Actionsワークフローなどのデプロイ手法を網羅しています。デプロイ済みのパッケージドキュメントサイトの作成、カスタマイズ、修正にご利用ください。
クイックインストール
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/build-pkgdown-siteこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Build pkgdown Site
Configure and deploy a pkgdown documentation website for an R package.
When to Use
- Creating a documentation site for an R package
- Customizing pkgdown layout, theme, or navigation
- Fixing 404 errors on a deployed pkgdown site
- Migrating between deployment methods
Inputs
- Required: R package with roxygen2 documentation
- Required: GitHub repository
- Optional: Custom theme or branding
- Optional: Vignettes to include as articles
Procedure
Step 1: Initialize pkgdown
usethis::use_pkgdown()
This creates _pkgdown.yml and adds pkgdown to .Rbuildignore.
Got: _pkgdown.yml exists in the project root. .Rbuildignore contains pkgdown-related entries.
If fail: Install pkgdown with install.packages("pkgdown"). If _pkgdown.yml already exists, the function will update .Rbuildignore without overwriting the config.
Step 2: Configure _pkgdown.yml
url: https://username.github.io/packagename/
development:
mode: release
template:
bootstrap: 5
bootswatch: flatly
navbar:
structure:
left: [intro, reference, articles, news]
right: [search, github]
components:
github:
icon: fa-github
href: https://github.com/username/packagename
reference:
- title: Core Functions
desc: Primary package functionality
contents:
- main_function
- helper_function
- title: Utilities
desc: Helper and utility functions
contents:
- starts_with("util_")
articles:
- title: Getting Started
contents:
- getting-started
- title: Advanced Usage
contents:
- advanced-features
- customization
Critical: Set development: mode: release. The default mode: auto causes 404 errors on GitHub Pages because it appends /dev/ to URLs.
Got: _pkgdown.yml contains valid YAML with url, template, navbar, reference, and articles sections appropriate for the package.
If fail: Validate YAML syntax with an online YAML linter. Ensure all function names in reference.contents match actual exported functions.
Step 3: Build Locally
pkgdown::build_site()
Got: docs/ directory created with a complete site including index.html, function reference pages, and articles.
If fail: Common issues: missing pandoc (set RSTUDIO_PANDOC in .Renviron), missing vignette dependencies (install suggested packages), or broken examples (fix or wrap in \dontrun{}).
Step 4: Preview Site
pkgdown::preview_site()
Verify navigation, function reference, articles, and search work correctly.
Got: Site opens in the browser at localhost. All navigation links work, function reference pages render, and search returns results.
If fail: If the preview does not open, manually open docs/index.html in a browser. If pages are missing, check that devtools::document() was run before building the site.
Step 5: Deploy to GitHub Pages
Method A: GitHub Actions (Recommended)
See setup-github-actions-ci skill for the pkgdown workflow.
Method B: Manual Branch Deployment
# Build site
Rscript -e "pkgdown::build_site()"
# Create gh-pages branch if it doesn't exist
git checkout --orphan gh-pages
git rm -rf .
cp -r docs/* .
git add .
git commit -m "Deploy pkgdown site"
git push origin gh-pages
# Switch back to main
git checkout main
Got: The gh-pages branch exists on the remote with the site files at the root level.
If fail: If the push is rejected, ensure you have write access to the repository. If using GitHub Actions deployment instead, skip this step and follow the setup-github-actions-ci skill.
Step 6: Configure GitHub Pages
- Go to repository Settings > Pages
- Set Source to "Deploy from a branch"
- Select
gh-pagesbranch,/ (root)folder - Save
Got: Site available at https://username.github.io/packagename/ within a few minutes.
If fail: If the site returns 404, verify the Pages source matches the deployment method (branch deployment requires "Deploy from a branch"). Check that development: mode: release is set in _pkgdown.yml.
Step 7: Add URL to DESCRIPTION
URL: https://username.github.io/packagename/, https://github.com/username/packagename
Got: DESCRIPTION URL field contains both the pkgdown site URL and the GitHub repository URL, separated by a comma.
If fail: If R CMD check warns about invalid URLs, verify the pkgdown site is deployed and accessible before adding the URL.
Validation
- Site builds locally without errors
- All function reference pages render correctly
- Articles/vignettes are accessible and render properly
- Search functionality works
- Navigation links are correct
- Site deploys successfully to GitHub Pages
- No 404 errors on the deployed site
-
development: mode: releaseis set in_pkgdown.yml
Pitfalls
- 404 errors after deployment: Almost always caused by
development: mode: auto(the default). Change tomode: release. - Missing reference pages: Functions must be exported and documented. Run
devtools::document()first. - Broken vignette links: Use
vignette("name")syntax in cross-references, not file paths. - Logo not showing: Place logo at
man/figures/logo.pngand reference in_pkgdown.yml. - Search not working: Requires
urlfield in_pkgdown.ymlto be set correctly. - Wrong R binary on hybrid systems: On WSL or Docker,
Rscriptmay resolve to a cross-platform wrapper instead of native R. Check withwhich Rscript && Rscript --version. Prefer the native R binary (e.g.,/usr/local/bin/Rscripton Linux/WSL) for reliability. See Setting Up Your Environment for R path configuration.
Related Skills
setup-github-actions-ci- automated pkgdown deployment workflowwrite-roxygen-docs- function documentation that appears on the sitewrite-vignette- articles that appear in the site navigationrelease-package-version- trigger site rebuild on release
GitHub リポジトリ
関連スキル
content-collections
メタこのスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。
polymarket
メタこのスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。
creating-opencode-plugins
メタこのスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。
sglang
メタSGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。
