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.
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.↩