9 min read

Mi post sobre blogdown

TL; DR

Esta entrada de blog trata de explicar algunas generalidades sobre la creación y publicación de páginas web estilo blog a traves del uso de la librería blogdown de R.

Motivación

Uno de los temas más comunes entre aquellas personas que escriben blogs de R es, precisamente, como crear blogs en R. Además, he visto tantos ultimamente, que decidí escribir mi propio post sobre blogdown con mi experiencia utilizando la librería para generar blogs temáticos sobre R, sobre como construí el mio y algunos tips y consejos después de un año creando y gestionando mi página con esta librería.

Importancia de tener un sitio personal

Un sitio personal es una página web en la cual subimos contenido acerca de nosotros, de nuestro trabajo y de las cosas que nos gustan.

En su curso, The personal website playbook, Tom Hirst nos da algunas de las ventajas de porque es conveniente contar con un sitio personal:

  • Presentarnos efectivamente: nuestros intereses, nuestros proyectos, nuestras ideas y nuestra historia. Una página web consiste de un gran espacio para expresarnos y comunicarnos.

  • Incrementar nuestra visibilidad en línea. Un sitio web bien diseñado puede ser una parte integral de nuestra estrategia comercial (si tenemos alguna).

  • Presentar los servicios y productos que ofrecemos: en caso de que los tengamos a la venta, podemos generar un catálogo con estos y ponerlo disponible 24/7.

  • Practicar nuestras habilidades de comunicación al estar escribiendo contenido para este sitio.

  • Es el CV moderno. Nos permite destacar y diferenciarnos de la competencia (que no tiene su propia página).

  • Consiste en un repositorio de documentos, tutoriales archivos y bases de datos útiles tanto para nosotros como para personas a las que podamos ayudar después. Tiene sus ventajas respecto a nuestros perfiles de Redes Sociales al darle más orden y estructura a nuestros contenidos, además de no vernos limitados por el espacio que nos dan para realizar publicaciones.

¿Qué es RMarkdown?

RMarkdown es la combinación del lenguaje de marcado Markdown combinado con las capacidades del lenguaje de programación R para analizar y visualizar datos.

Fig. 2. RMarkdown como la combinación de R y Markdown.

Al combinar ambos lenguajes tenemos la capacidad de crear una gran cantidad de documentos, que van desde una página web básica en HTML hasta documentos *.pdf (con ayuda de LaTeX), documentos de Word, presentaciones de diapositivas (Xaringan), libros electrónicos (bookdown) y, por supuesto, blogs personales.

Fig. 2. Documentos y programas que trabajan con RMarkdown.Fuente: RStudio.

Personalmente, considero que aprender RMarkdown es una habilidad muy importante entre aquellos aspirantes a analistas de datos, científicos de datos y econometristas que han escogido el lenguaje R como su herramienta de trabajo; nos ofrece una herramienta de comunicación altamente versatil, nos obliga a trabajar de manera reproducible, a escribir mejor código y es la puerta de entrada a otro tipo de habilidades muy útiles, como la creación y la estructura de páginas web y a aprender CSS.

Para que los artículos que generes en tu blog se vean lo más bonitos posible, primero hay que aprender a utilizar RMarkdown. Posiblemente en el LNPP abramos un curso pronto, pero por ahora, puedes aprender lo básico en este tutorial chiquito que hice alguna vez para mi otro blog :9 o en algun curso en línea (como este).

Blogdown

El paquete Blogdown es el paquete de R creado para generar sitios web estáticos personalizables en Markdown.

Entre las ventajas que ofrece estan las siguientes:

  1. Podemos incluir y ejecutar código de R(o de cualquier otro lenguaje de programación soportado por el paquete knit, como Python).

  2. Automáticamente nos genera (renderiza) resultados como gráficas, tablas, resultados de análisis estadísticos y widgets de HTML.

  3. Nos permite incluir citaciones, pies de página y ecuaciones LaTeX, así como código HTML en caso de que necesitemos cosas más particulares.

Instalación

Este paquete se encuentra disponible en el CRAN. Se puede instalar con el siguiente código:

install.packages("blogdown")

Igualmente, la versión de desarrollo se puede descargar con el siguiente código:

remotes::install_github('rstudio/blogdown')

¿Por qué usar blogdown?

Las ventajas de blogdown con respecto a otros servicios (como wordpress o publicar en medium) consisten prácticamente en tres cosas:

  1. Facilita la inclusión de código de R. Al estar basado en R, le da el formato correcto al código que publiquemos. Igualmente, como en cualquier documento de RMarkdown, genera y ejecuta código en su propio ambiente, por lo que no tenemos que preocuparnos por estar pegando por separado los resultados de ejecutar ciertos bloques de código.

  2. Es gratuito. Ventajas de ser Open Source.

  3. Te permite empezar a trabajar desde ya en tu sitio web. Solo se necesita descargar el paquete.

En que casos usar blogdown

Personalmente, creo que utilizar la librería blogdown es un buen ejercicio para aquellos programadores de R que deseen publicar cosas (como visualizaciones o tutoriales) dado que las herramientas del paquete nos facilitan bastante el trabajo.

También podría ser útil para alguien que solo quiere experimentar y montar un pequeño blog y quiere hacerlo rápido y gratis, e irlo mejorarlo sobre la marcha.

Sin embargo, para sitios web más complejos o para publicaciones de blog de otro tipo de temas, quizá convenga explorar soluciones de mercado (como Wordpress o Medium) las cuales pueden proveer de más herramientas a los autores, como añalisis de tráfico, instalación de plugins, generación de tiendas de e-commerce, entre muchas otras ventajas de los servicios modernos y programados por alguien más.

Framework Hugo

Por default, el paquete blogdown usa Hugo, un generador de sitios estáticos open-source, el cual provee una manera rápida y flexible de generar el contenido de tu sitio y de compartirlo en línea.

Según su repositorio en línea, Hugo está optimizado para ser rápido, fácil de usar y ser altamente configurable. Hugo toma un directorio con contenido compatible y lo convierte en código HTML listo para ser publicado en la web.

Cuando se utiliza en blogdown, instalamos Hugo desde RStudio (por lo que no debemos preocuparnos tanto por entenderlo en un principio).

Para revisar los temas disponibles para generar nuestros blogs, podemos consultar el enlace de temas disponibles para Hugo: https://themes.gohugo.io y ver cual nos agrada más.

El código fuente de Hugo se puede consultar en este repositorio: https://github.com/gohugoio/hugo

Para instalar Hugo y tenerlo listo en nuestra sesión de RStudio, lo hacemos con el siguiente código:

blogdown::install_hugo()

Parte técnica:

Para hacer menos pesada esta entrada, decidí mover toda la parte técnica (entendiendo como parte técnica donde trabajamos con RStudio) al siguiente enlace: https://juvenalcampos.com/2021/08/01/generando-un-blog-y-más-cosas-técnicas/

¿Donde Publicar mi blog?

Publicar el blog consiste en poner a disposición todo el contenido de la página web. Para publicar la página en línea, los dos servicios más comunes son Github Pages y Netlify. Podemos usar una de las dos, o ambas.

Github Pages es un servicio de Github que permite construir una página web a partir de un repositorio de código. Para esto, tenemos que generar un repositorio y después cargar, en dicho repositorio, todo el código necesario para generar la página y configurar el repositorio para que muestre este contenido.

Por su parte, Netlify es una compañía que ofrece servicios de computación en la nube para el almacenamiento de aplicaciones web y sitios estáticos (como un blog). Uno de sus servicios consiste en proveer almacenamiento (host) a páginas web almacenadas a través de un control de versiones Git, por lo que, al igual que el servicio anterior, nos permite almacenar páginas donde el código está almacenado en repositorios de Github.

La ventaja de Netlify sobre Github Pages radica en que Netlify corre Hugo desde sus servidores, por lo que disminuye los tiempos de carga de la página.

Otra ventaja es que Netlify nos puede ayudar a gestionar la compra de dominios (direcciones web), por lo que si queremos que nuestra página tenga su dominio personalizado, lo podemos obtener/comprar de forma sencilla desde este servicio.

Nota: De ambos servicios se desprende el hecho de que el hosteo se tiene que realizar desde un repositorio de Github; esto tiene la ventaja de que todos los sitios web construidos con esta librería tienen el código disponible en línea y, si queremos, podemos descargar el código que los genera en nuestras computadoras.

Algunos ejemplos:

Algunos ejemplos de blogs construidos con la librería blogdown son los siguientes:

Referencias:

Para escribir esta entrada, tomé como referencia las siguientes publicaciones (además de mi experiencia personal).

Conclusion

Contenido de una presentación brindada en el LNPP-Tech del 12 de marzo del 2020.

Este soy yo sin saber que pronto ibamos a dejar de trabajar de manera presencial

Este fue el contenido (ligeramente aumentado) de una charla que di para un LNPP-Tech en marzo de 2020, unos dias antes de tener que dejar de ir presencialmente a mi lugar de trabajo. Los LNPP-Tech son una iniciativa de mi lugar de trabajo en la cual todos podemos compartirnos conocimientos técnicos a partir de clases y talleres con el fin de que todos podamos aprender del talento de las personas con las que trabajamos todos los días.

Una de las cosas que la pandemia ha evidenciado es la necesidad de tener una presencia más fuerte en línea , y desde el inicio del confinamiento hasta ahora hemos visto como una gran cantidad de profesionistas, desde dentistas hasta economistas consagrados, pasando por candidatos a gobernador, han tenido que hacerse espacio en las redes para llegar a más audiencias y poder vender sus bienes y sus servicios en una época en la cual las actividades de promoción de manera personal se han visto fuertemente limitadas.

Es por esto que me animé a escribir un blog y hacer una presentación para mis compañeros del Laboratorio; para que más personas se animen a dar un primer paso en la creación de su página web y de sus estrategias digitales, para que mas personas conozcan las herramientas que nos brinda R para la creación y la gestión de contenido y para que se animen a escribir sus tutoriales y sus entradas de blog.

Ojalá haya más personas que se animen a escribir su propio contenido 😉.

Cualquier duda, consulta o sugerencia quedo al pendiente en mi correo o en mis RRSS disponibles en la parte de arriba de la página.

-Happy Coding