D.2 LiveReload
Como mencionamos brevemente en la sección ??, puede usar blogdown::serve_site()
para obtener una vista previa de un sitio web, y la página web se reconstruirá automáticamente y se volverá a cargar en su navegador web cuando el archivo fuente se modifica y se guarda. Esto se llama “LiveReload”.
Hemos proporcionado dos enfoques para LiveReload. El enfoque predeterminado es a través de servr::httw()
, que vigilará continuamente el directorio del sitio web en busca de cambios de archivos y reconstruirá el sitio cuando se detecten cambios. Este enfoque tiene algunos inconvenientes:
Es relativamente lento porque el sitio web se regenera por completo cada vez. Esto puede no ser un problema real para Hugo, porque Hugo suele ser lo suficientemente rápido: se tarda aproximadamente un milisegundo en generar una página, por lo que un sitio web con mil páginas solo puede tardar aproximadamente un segundo en regenerarse por completo.
El servidor demonizado (vea la sección 1.4 puede no funcionar.
Si no está preocupado por los problemas anteriores, le recomendamos que use el enfoque predeterminado; de lo contrario, puede configurar la opción global options(blogdown.generator.server = TRUE)
para usar un enfoque alternativo a LiveReload, que se basa en el soporte nativo para LiveReload del generador de sitios estáticos. Por el momento, esto solo se ha probado contra sitios web basados en Hugo. No funciona con Jekyll y tampoco tuvimos éxito con Hexo.
Este enfoque alternativo requiere la instalación de dos paquetes R adicionales: processx (???) y later (???). Puede utilizar este enfoque cuando trabaje principalmente en publicaciones de Markdown sencillas en lugar de publicaciones de R Markdown, porque puede ser mucho más rápido obtener una vista previa de las publicaciones de Markdown utilizando el servidor web de Hugo. El servidor web puede ser detenido por blogdown::stop_server()
, y siempre se detendrá cuando la sesión en R finalice, por lo que puede reiniciar su sesión en R si stop_server()
no puede detener el servidor por alguna razón.
El servidor web se establece a través del comando hugo server
(ver su documentación para más detalles). Puede pasar argumentos de línea de comandos a través de la opción global blogdown.hugo.server
. El valor predeterminado para esta opción es c('-D', '-F')
, lo que significa mostrar las publicaciones preliminares y futuras en la vista previa. Queremos resaltar un argumento especial --navigateToChanged
en una versión reciente de Hugo, que le pide a Hugo que navegue automáticamente a la página modificada. Por ejemplo, puede establecer las opciones:
Luego, cuando edite un archivo fuente bajo content/
, Hugo le mostrará automáticamente la página de salida correspondiente en el navegador web.
Tenga en cuenta que Hugo presenta el sitio web desde la memoria de forma predeterminada, por lo que no se generarán archivos para public/
. Si necesita publicar la carpeta public/
manualmente, deberá compilar manualmente el sitio web a través de blogdown::hugo_build()
o blogdown::build_site()
.