D.4 Funciones del paquete de blogdown

Hay aproximadamente 20 funciones exportadas en el paquete blogdown, y muchas más funciones no exportadas. Las funciones exportadas están documentadas y puede usarlas después de library(blogdown) (o mediante blogdown ::). Las funciones no exportadas no están documentadas, pero puede acceder a ellas a través de blogdown::: (la sintaxis de tres puntos). Este paquete no es muy complicado y consta de solo 1800 líneas de código en R (el número viene dado por el comando de conteo de palabras wc):

Puede consultar el código fuente (https://github.com/rstudio/blogdown) si quiere saber más acerca de una función no exportada. En esta sección, enumeramos de forma selectiva algunas funciones exportadas y no exportadas en el paquete para su referencia.

D.4.1 Funciones exportadas

Instalación: Puede instalar Hugo con install_hugo(), actualizar Hugo con update_hugo(), e instalar un tema de Hugo con install_theme().

Paquetes de comandos de Hugo: hugo_cmd() es un paquete de system2('hugo', ...), y todas las funciones posteriores ejecutan comandos específicos de Hugo basados en esta función de paquete general; hugo_version() ejecuta el comando hugo version (i.e., system2('hugo', 'version') en R); hugo_build() ejecuta hugo con parámetros opcionales; new_site() ejecuta hugo new site; new_content() ejecuta hugo new para crear un nuevo archivo de contenido, y new_post() es un paquete basado en new_content() para crear una nueva publicación de blog con metadatos YAML apropiados y nombre de archivo; hugo_convert() ejecuta hugo convert; hugo_server() ejecuta hugo server.

Formato de salida: html_page() es la única función de formato de salida R Markdown en el paquete. Está heredada desde bookdown::html_document2(), que a su vez está heredada de rmarkdown::html_document(). Necesita leer la documentación de estas dos funciones para conocer los posibles argumentos. La sección ?? tiene información más detallada al respecto.

Funciones de ayuda: shortcode() es una función de ayuda para escribir abreviatura de Hugo {{% %}} en un post Rmd; shortcode_html() escribe {{< >}}.

Presentar un sitio: serve_site() inicia un servidor web local para construir y obtener una vista previa de un sitio de forma continua; puede detener el servidor a través de stop_server(), o reiniciar su sesión en R.

Manejando metadatos YAML: find_yaml() se puede usar para encontrar archivos de contenido que contengan un campo YAML especificado con valores especificados; find_tags() y find_categories() son funciones de contenedor basadas en find_yaml() para unir etiquetas y categorías específicas en archivos de contenido, respectivamente; count_yaml() se puede usar para calcular las frecuencias de los campos especificados.

D.4.2 Funciones no exportadas

Algunas funciones no se exportan en este paquete porque es poco probable que los usuarios promedio las utilicen directamente, y enumeramos un subconjunto de ellas a continuación:

  • Puede encontrar la ruta al ejecutable de Hugo a través de blogdown:::find_hugo(). Si el ejecutable se puede encontrar a través de la variable de entorno PATH, simplemente devuelve 'hugo'.

  • La función auxiliar modify_yaml() se puede usar para modificar los metadatos YAML de un archivo. Tiene un argumento ... que toma campos YAML arbitrarios, por ejemplo, blogdown:::modify_yaml('foo.md', author = 'Frida Gomam', date = '2015-07-23') cambiará el campo author en el archivo foo.md a Frida Gomam, y date a 2015-07-23. Hemos mostrado el uso avanzado de esta función en la sección ??.

  • También hemos mencionado una serie de funciones para limpiar publicaciones de Markdown en la sección 4.1. Incluyendo process_file(), remove_extra_empty_lines(), process_bare_urls(), normalize_chars(), remove_highlight_tags(), y fix_img_tags().

  • En la sección @ref(vista previa local), mencionamos un mecanismo de almacenamiento en caché basado en el tiempo de modificación del archivo. Se implementa en blogdown:::require_rebuild(), que toma dos argumentos de nombres de archivos. El primer archivo es el archivo de salida, y el segundo es el archivo de origen. Cuando el archivo fuente es anterior al archivo de salida, o el archivo de salida no existe o está vacío, esta función devuelve TRUE.

  • La función blogdown:::Rscript() es una función de contenedor para ejecutar el comando Rscript, que básicamente significa ejecutar un script R en una nueva sesión R. Mencionamos esta función en el capítulo 5.