D.9 Diferentes métodos de construcción

Si su sitio web no contiene ningún archivo Rmd, es muy sencillo presentarlo, solo una llamada al sistema al comando hugo. Cuando su sitio web contiene archivos Rmd, blogdown ha proporcionado dos métodos de representación para compilar estos archivos Rmd. Se puede construir un sitio web usando la función blogdown::build_site():

Como se menciona en la sección 1.4, el valor predeterminado del argumento método está determinado por la opción global blogdown.method, y puede establecer esta opción en .Rprofile.

Para method = 'html',build_site() renderiza *.Rmd a *.html, y *.Rmarkdown a *.markdown, y mantiene los *.html/*.markdown archivos de salida bajo el mismo directorio que los archivos *.Rmd/*.Rmarkdown.

Un archivo Rmd puede generar dos directorios para figuras (*_files/) y caché (*_caché/), respectivamente, si tiene salida de gráficos o HTML widgets (Vaidyanathan et al. 2018) en los fragmentos de código R, o habilitada la opción de fragmento cache = TRUE para el almacenamiento en caché. En el directorio de figuras, habrá un subdirectorio figure-html/ que contiene los archivos de salida de trazado, y posiblemente otros subdirectorios que contengan dependencias HTML de widgets HTML (por ejemplo, jquery/). El directorio de figuras se mueve a /static/, y el directorio de caché se mueve a /blogdown/.

Después de ejecutar build_site(), su sitio web está listo para ser compilado por Hugo. Esto le da la libertad de usar servicios de implementación como Netlify (capítulo ??), donde ni R ni blogdown están disponibles, pero Hugo sí lo está.

Para method = 'custom', build_site() no procesará ningún archivo R Markdown ni llamará a Hugo para construir el sitio. No importa qué método elija usar, build_site() siempre buscará un script en R /R/build.R y lo ejecutará si existe. Esto le da total libertad para hacer lo que quiera para el sitio web. Por ejemplo, puede llamar a knitr::knit() para compilar Rmd a Markdown (*.md) en este script de R en lugar de usar rmarkdown::render(). Esta característica está diseñada para usuarios avanzados que están realmente familiarizados con el paquete knitr46 Y Hugo u otros generadores de sitios web estáticos (ver capítulo 5).

Cuando R/build.R existe y method = 'html', los archivos R Markdown se tejen primero, luego se ejecuta el script R/build.R, y finalmente se llama a Hugo para construir el sitio web.

Referencias

Vaidyanathan, Ramnath, Yihui Xie, JJ Allaire, Joe Cheng, and Kenton Russell. 2018. Htmlwidgets: HTML Widgets for R. https://CRAN.R-project.org/package=htmlwidgets.


  1. Honestamente, originalmente fue diseñado para que el propio Yihui construya su propio sitio web, pero se dio cuenta de que esta característica podría liberar a los usuarios de Hugo. Por ejemplo, es posible usar Jekyll (otro popular generador de sitios estáticos) con blogdown, también.