Agent-almanac build-pkgdown-site
git clone https://github.com/pjt222/agent-almanac
T=$(mktemp -d) && git clone --depth=1 https://github.com/pjt222/agent-almanac "$T" && mkdir -p ~/.claude/skills && cp -r "$T/i18n/es/skills/build-pkgdown-site" ~/.claude/skills/pjt222-agent-almanac-build-pkgdown-site-b5ac41 && rm -rf "$T"
i18n/es/skills/build-pkgdown-site/SKILL.mdCompilar Sitio pkgdown
Configurar y desplegar un sitio web de documentación pkgdown para un paquete R.
Cuándo Usar
- Crear un sitio de documentación para un paquete R
- Personalizar la disposición, el tema o la navegación de pkgdown
- Corregir errores 404 en un sitio pkgdown desplegado
- Migrar entre métodos de despliegue
Entradas
- Obligatorio: Paquete R con documentación roxygen2
- Obligatorio: Repositorio de GitHub
- Opcional: Tema o marca personalizada
- Opcional: Viñetas a incluir como artículos
Procedimiento
Paso 1: Inicializar pkgdown
usethis::use_pkgdown()
Esto crea
_pkgdown.yml y añade pkgdown a .Rbuildignore.
Esperado:
_pkgdown.yml existe en la raíz del proyecto. .Rbuildignore contiene entradas relacionadas con pkgdown.
En caso de fallo: Instalar pkgdown con
install.packages("pkgdown"). Si _pkgdown.yml ya existe, la función actualizará .Rbuildignore sin sobrescribir la configuración.
Paso 2: Configurar _pkgdown.yml
_pkgdown.ymlurl: 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
Crítico: Configurar
development: mode: release. El mode: auto predeterminado provoca errores 404 en GitHub Pages porque añade /dev/ a las URLs.
Esperado:
_pkgdown.yml contiene YAML válido con secciones url, template, navbar, reference y articles apropiadas para el paquete.
En caso de fallo: Validar la sintaxis YAML con un validador YAML en línea. Asegurarse de que todos los nombres de funciones en
reference.contents coinciden con funciones exportadas reales.
Paso 3: Compilar Localmente
pkgdown::build_site()
Esperado: Directorio
docs/ creado con un sitio completo incluyendo index.html, páginas de referencia de funciones y artículos.
En caso de fallo: Problemas frecuentes: pandoc faltante (configurar
RSTUDIO_PANDOC en .Renviron), dependencias de viñetas faltantes (instalar paquetes sugeridos), o ejemplos rotos (corregir o envolver en \dontrun{}).
Paso 4: Previsualizar el Sitio
pkgdown::preview_site()
Verificar que la navegación, la referencia de funciones, los artículos y la búsqueda funcionan correctamente.
Esperado: El sitio se abre en el navegador en localhost. Todos los enlaces de navegación funcionan, las páginas de referencia de funciones se renderizan y la búsqueda devuelve resultados.
En caso de fallo: Si la previsualización no se abre, abrir manualmente
docs/index.html en un navegador. Si faltan páginas, verificar que se ejecutó devtools::document() antes de compilar el sitio.
Paso 5: Desplegar en GitHub Pages
Método A: GitHub Actions (Recomendado)
Ver la habilidad
setup-github-actions-ci para el flujo de trabajo pkgdown.
Método B: Despliegue Manual por Rama
# Compilar el sitio Rscript -e "pkgdown::build_site()" # Crear la rama gh-pages si no existe git checkout --orphan gh-pages git rm -rf . cp -r docs/* . git add . git commit -m "Deploy pkgdown site" git push origin gh-pages # Volver a main git checkout main
Esperado: La rama
gh-pages existe en el remoto con los archivos del sitio en el nivel raíz.
En caso de fallo: Si el push es rechazado, asegurarse de tener acceso de escritura al repositorio. Si se usa el despliegue con GitHub Actions, omitir este paso y seguir la habilidad
setup-github-actions-ci.
Paso 6: Configurar GitHub Pages
- Ir a Configuración del repositorio > Pages
- Establecer la Fuente en "Deploy from a branch"
- Seleccionar la rama
, carpetagh-pages/ (root) - Guardar
Esperado: Sitio disponible en
https://username.github.io/packagename/ en pocos minutos.
En caso de fallo: Si el sitio devuelve 404, verificar que la fuente de Pages coincide con el método de despliegue (el despliegue por rama requiere "Deploy from a branch"). Comprobar que
development: mode: release está configurado en _pkgdown.yml.
Paso 7: Añadir URL a DESCRIPTION
URL: https://username.github.io/packagename/, https://github.com/username/packagename
Esperado: El campo
URL de DESCRIPTION contiene tanto la URL del sitio pkgdown como la URL del repositorio de GitHub, separadas por una coma.
En caso de fallo: Si
R CMD check advierte sobre URLs inválidas, verificar que el sitio pkgdown está realmente desplegado y accesible antes de añadir la URL.
Validación
- El sitio se compila localmente sin errores
- Todas las páginas de referencia de funciones se renderizan correctamente
- Los artículos y viñetas son accesibles y se renderizan correctamente
- La funcionalidad de búsqueda funciona
- Los enlaces de navegación son correctos
- El sitio se despliega con éxito en GitHub Pages
- Sin errores 404 en el sitio desplegado
-
está configurado endevelopment: mode: release_pkgdown.yml
Errores Comunes
-
Errores 404 tras el despliegue: Casi siempre causados por
(el predeterminado). Cambiar adevelopment: mode: auto
.mode: release -
Páginas de referencia faltantes: Las funciones deben estar exportadas y documentadas. Ejecutar primero
.devtools::document() -
Enlaces de viñetas rotos: Usar la sintaxis
en referencias cruzadas, no rutas de archivo.vignette("name") -
Logo no visible: Colocar el logo en
y referenciarlo enman/figures/logo.png
._pkgdown.yml -
Búsqueda no funciona: Requiere que el campo
enurl
esté correctamente configurado._pkgdown.yml -
Binario R incorrecto en sistemas híbridos: En WSL o Docker,
puede resolverse a un contenedor multiplataforma en lugar de R nativo. Comprueba conRscript
. Prefiere el binario R nativo (p. ej.,which Rscript && Rscript --version
en Linux/WSL) para mayor fiabilidad. Consulta Setting Up Your Environment para la configuración de la ruta de R./usr/local/bin/Rscript
Habilidades Relacionadas
- flujo de trabajo de despliegue automatizado de pkgdownsetup-github-actions-ci
- documentación de funciones que aparece en el sitiowrite-roxygen-docs
- artículos que aparecen en la navegación del sitiowrite-vignette
- activar la recompilación del sitio al publicar una versiónrelease-package-version