Incluir ficheros de texto en blogdown
Otro post para recordar en el futuro la solución a un problema que me ha traído de cabeza recientemente.
El problema: tienes un fichero de texto (por ejemplo un fichero de código Matlab o un fichero fuente LaTeX) y quieres mostrar su contenido en un sitio web construido con blogdown. ¿Cuál es la forma de enlazar el fichero desde un bloque (chunk) de rmarkdown?
Solución: lo que voy a contar es un resumen de lo que aparece en esta página del minimal example website for the blogdown package. Los posibles errores, por supuesto, son míos. He probado varias de las soluciones que se proponen allí. Una solución que funciona pasa por tener esos ficheros alojados en la nube, usando servicios como Dropbox, Onedrive o incluso GitHub. Pero la que más me gusta por comodidad es la que utiliza la librería
here
de R. El esquema es este.Queremos mostrar el contenido de un fichero de texto llamado
prueba.txt
.Situamos ese fichero en una subcarpeta de la carpeta
static
. Concretamente en este ejemplo el fichero está alojado enstatic/carpeta1/carpeta2
. Uso esta estructura de ejemplo para reflejar la posible organización de ficheros en el sitio web. Tal vez quieras tener una carpeta para tus ficheros de código, con subcarpetas para Matlab, python, etc; otro para ficheros de datos en distintos formatos (csv, xslx, etc.) , otro de imágenes,…Ahora supongamos que estás escribiendo un post como este (o cualquier otra página de tu sitio web) y quieres mostrar el contenido de
prueba.txt
. Para ello usamos este chunk de rmarkdown (las opciones de la cabecera son importantes):```{r echo=FALSE, comment='', message=FALSE} library(here) texto = readLines(here('static', 'carpeta1', 'carpeta2', 'prueba.txt')) cat(texto, sep = "\n") ```
El resultado es que el fichero de texto aparecerá insertado en tu post o página, como se ve aquí:
linea1 linea2 linea3