Creando una página web bilingüe en R

Crear una página web. Ilustración: parveender en Pixabay

Esta nota sintetiza los principales pasos para crear una página web como esta: bilingüe y desarrollada desde R, utilizando herramientas gratuitas. Antes de empezar, ¿por qué tener una página web personal? Muchas personas hemos elegido tener nuestra página web personal como una forma de difundir quiénes somos, los proyectos en los que trabajamos, nuestros intereses, etc. Tener una página web personal nos conecta con el mundo y permite la recopilación y el intercambio de información entre pares. A continuación te comentamos otros beneficios de crear tu propia página personal:

  • Otra forma de practicar nuestras habilidades de comunicación

Una de las mejores formas de saber si entendimos acerca de cierto tópico es intentar explicárselo a alguien y que esa persona comprenda lo que quisimos decir. De esta manera escribir una nota puede ayudarnos a encontrar la forma más didáctica para que otra persona pueda aprender sobre cierto tema. Y nos permite identificar aquellos tópicos que creíamos entender pero que quizas nos falte profundizar un poco más.

  • Intercambio con colegas y ampliación de nuestra red de contactos (networking)

Una consecuencia directa de la diseminación de nuestros proyectos y trabajos realizados es la posibilidad de colaboración en futuros proyectos con otros profesionales de nuestra area de interés.

  • Difusión de nuestros trabajos y habilidades

Dado que las páginas web personales no tienen una estructura definida, podemos ser creatives y flexibles a la hora de mostrar nuestras experiencias profesionales y en la escritura de nuestras notas. Así, por ejemplo, podemos publicar en la web acerca de un proyecto en el cual estemos trabajando acompañado de mapas, videos y fotos que ayudarán a enmarcar el proyecto de una forma más amena y dinámica.

  • Los errores y dudas que nos surgen y cómo resolverlas, puede ser de gran utilidad para el resto de la comunidad

Si escribimos una nota de, por ejemplo, cómo realizar cierto análisis estadístico en R de una forma mas eficiente y la solución a un error frecuente, esto puede ser de gran ayuda para otra persona que esta lidiando con dicho análisis. Incluso pueden sugerirnos otra alternativa práctica a raiz de la lectura de nuestra nota.

Flujo de trabajo

Si después de leer esta introducción y las ventajas de tener una página web, te surgieron las ganas de crear la tuya, te proponemos un flujo de trabajo para crear una página web personal de formar gratuita en R. Aunque nos enfocamos principalmente en páginas web con perfil académico, los paso a paso que te comentamos en la próxima nota sirven para construir todo tipo de páginas webs.

El siguiente esquema intenta resumir los tres pasos más relevantes para la creación de una página web:

  1. En GitHub: creación de un repositorio público donde colocar todas las carpetas de nuestra página desde R.

  2. En RStudio: instalación de blogdown y Hugo, elección del formato de nuestra página a partir de las diferentes opciones ofrecidas por Hugo. Configuracion de la página y cómo hacerla bilingüe.

  3. Diferentes opciones para publicar tu página web en internet y la elección del dominio.

Esquema conceptual. 1, Github: sale una flecha hacia Nuevo repositorio. 2. RStudio: sale una flecha hacia los hex-stickers de blogdown y Hugo; estos hex-stickers están conectados con Nuevo repositorio con una flecha doble. Desde Nuevo repositorio, salen dos flechas, una hacia 3. Netlify y otra hacia Githubpages; ambas posibilidades convergen hacia un website.

1. En GitHub: crear un repositorio público

Comenzaremos con la creación de un repositorio en GitHub para luego crear un proyecto en RStudio con control de versiones. De esta manera podremos ir registrando todos los cambios realizados para crear la página web. En esta parte, asumimos que tenés una cuenta en GitHub. Si no es el caso, podés hacerte una cuenta en Github aquí. Si estás realizando tus primeros pasos en Git, en este nota encontrarás más información que te ayudará a incursionarte en Git.1

Vamos a comenzar creando un nuevo repositorio público en nuestra cuenta de GitHub, siguiendo los pasos que figuran a continuación.

Ir a github web, 1. click en + y New repository, 2. escribir un nombre del repositorio, 3. click en Add a README file, 4. Click en botón Create repository

Para ello, no es necesario que el nombre del repositorio sea el nombre del dominio de la página web. Por último, copiamos el URL HTTPS de nuestro repositorio para clonarlo en RStudio.

Clonar el repositorio: click en Code y luego copiar la web URL.

2. En RStudio: armamos y actualizamos la web

Nuevo proyecto, la instalación de blogdown y Hugo

Continuamos creando un proyecto con control de versiones utilizando la URL HTTPS del repositorio creado. File > New Project > Version Control > Git.

En el proyecto ya creado, proseguimos con la descarga del paquete blogdown.

install.packages(blogdown)

Una vez instalado blogdown, procedemos con la instalación de Hugo, de la siguiente manera:

blogdown::install_hugo()

Hugo es el generador de sitios estáticos en el que se basa blogdown. En su página web se pueden encontrar una gran variedad de plantillas de sitios web. Por ejemplo, la plantilla academic tiene varias utilidades interesantes para páginas webs académicas.

Ahora vamos a instalar a modo de ejemplo la plantilla academic

library (blogdown)

blogdown::new_site(theme = "wowchemy/starter-academic", theme_example = TRUE)# en theme se debe colocar el nombre de la plantilla de hugo elegida 

Luego de esperar pocos minutos para la instalación de todas las carpetas y archivos que conforman la plantilla academic, obtendremos la primera versión de nuestro sitio web.

Personalizando tu sitio web

Si tenés instalada la última versión de blogdown, la plantilla se previsualizará de forma automática en el panel Viewer. En cambio, si tenés una versión anterior, entonces hay que ejecutar las siguiente linea de código para tener un visualización del sitio web localmente.


blogdown::serve_site()
blogdown::stop_server()# para dejar de visualizar el contenido generado

Veremos lo siguiente en Viewer (o en un navegador):

Se observa la plantilla por defecto de Hugo Academic, con una biografía de un tal Nelson Bighetti y algunas secciones pre-establecidas.

Ya tenemos nuestra página web, ahora lo que queda es reemplazar la información de la página por la nuestra y organizarla según nuestros intereses. A medida que modifiquemos cada archivo vamos a poder visualizar automáticamente los cambios en el Viewer y o en el navegador.

A continuación se muestra los principales archivos y carpetas que constituyen la página web.

├── config.toml       
📂── config/default
   ├── menus.toml     
   ├── params.toml    
   └── languages.toml
📂── content
📁── themes

En el archivo config.toml se encuentran los metadatos de nuestra página. Dentro de este archivo modificaremos el título de la página web y la URL.

Dentro de la carpeta _config/default se encuentran tres archivos.toml que definen la configuración de la página web.

  • params.toml: combinación de colores de la página (theme)2, tamaño de la letra (font_size). En este archivo también se agrega la información de contacto (email, dirección laboral, cuenta de twitter, GitHub, ResearchGate).

  • menus.toml: opciones del menú de navegación (Notas, Proyectos, Cursos, Publicaciones, etc). Podrás cambiar los nombres o quitar aquellas opciones que no querés que aparezcan.

  • languages.toml: se define el o los idiomas del sitio web.

En la carpeta content se localiza el contenido de nuesta página web en subcarpetas. Por ejemplo, si se quiere cambiar la información de la biografia, hay que seguir la siguiente ruta content > authors > admin y modificar el archivo index.md. Podremos cambiar la foto de la página reemplazando avatar.jpg por una foto nuestra.

📁── content
   ├── 📂authors     
   ├── 📁courses
   ├── 📁home
   ├── 📁post
   ├── 📂project
   └── 📂publication

Desde content/home se podrán activar y editar cada una de las opciones del menú de navegación (widgets) de la página web. Para que se visualice el widget, es necesario que aparezca active= true

Configuración de la página web bilingüe

Para configurar el sitio web en dos idiomas (español e inglés a modo de ejemplo) tenemos que crear dos subcarpetas llamadas en y es dentro de la carpeta content. Las nuevas subcarpetas deben tener cada una el contenido que había previamente en la carpeta content.3

📂── content
   ├── 📁- es     <- Español
   ├── 📂- en     <- Inglés
    

Luego, en el archivo languages.toml descomentar y agregar las siglas del segundo idioma e indicar la carpeta donde está su contenido.


[en]
  languageCode = "en-us"
  contentDir = "content/en"  # Uncomment for multi-lingual sites, and move English content into `en` sub-folder.
  title = "English site"

# Uncomment the lines below to configure your website in a second language.
[es]
 languageCode = "es"
 contentDir = "content/es"
  title = "Sitio en español"

  [es.params]
   description = "Sitio en español"
  [[es.menu.main]]
    name = "es"
    url = "#about"
    weight = 1

Además, se deben crear dos nuevos archivos menus.es.toml y menus.en.toml.

📂── config/default
   ├── menus.es.toml     <- Español
   ├── menus.en.toml     <- Inglés
   ├── params.toml    
   └── language.toml    

Finalmente en config.toml debemos elegir el idioma por defecto del sitio web. Por ejemplo si queremos que quede en español defaultContentLanguage = “es”

Para visibilizar que la página web es bilingüe, conviene ir a params.toml y verificar que en show_language diga TRUE.

Ilustrativo: se señala show_language=TRUE en el archivo params.toml

3. Publicar tu página web en internet (Deploy)

Una vez que la página web este editada de acuerdo a nuestros intereses, lo que resta es publicarla y compartirla al resto de la comunidad. Te indicamos dos opciones para ello que difieren en el servicio de host que utilizan. En ambos casos, son servicios gratuitos y permiten tener sitios estáticos. En el caso de Netlify, tu página web tendrá el siguiente dominio: nombreweb.netlify.app En el caso de Github Pages: nombreweb.github.io

Netlify y GitHub pages son servicios de host en la nube que nos permite tener un sitio estático de forma gratuita y sencilla. Basicamente, ambos se conecta con el repositorio remoto en GitHub para publicar el sitio en la web.

Utilizando Netlify

Primero debemos poner una copia del archivo netlify.toml localizado en theme > starter-academic en la carpeta base del proyecto. En dicho archivo debemos especificar la versión utilizada de Hugo.


blogdown::hugo_version()
[1] '0.74.3'

El archivo netlify.toml corregido con la versión de Hugo debería quedar así:


[build.environment]
  HUGO_VERSION = "0.78.1" #Aqui va el número de tu versión de Hugo
  HUGO_ENABLEGITINFO = "true"

Además verificamos en el archivo config.toml esté especificado el theme utilizado. En nuestro caso es starter-academic.


theme = "starter-academic"

Ahora sí podemos publicar nuestra página web. Primero, debemos ingresar a la página de Netlify. Cliqueamos en Sign Up y luego en GitHub para conectar Netlify con GitHub.

En la página de Netlify, loguearse con Github

Luego, elegimos el repositorio remoto donde está la información de la página web mediante la siguiente ruta New site from Git > GitHub Obtendrás algo similar a la siguiente figura pero autocompletado con tu información.

Se observa el Owner del repo: Pamela Pairo's team en la imagen; la branch to deploy = main; el Build command de Hugo; y qué directorio se publica (main)

En opciones avanzadas (Show advanced) escribir la versión de Hugo que utilizaste para crear tu sitio web.

En el ejemplo, la primera caja de Key dice HUGO_VERSION y la segunda caja Value dice 0.78.1

Cliqueamos en Deploy Site y ¡¡¡listo!!! 🥳 Notaremos que Netlify asigna aleatoriamente el nombre de la página web. Para cambiarlo tendremos que ir a Domain Settings > Options > Edit site name Podrás editar el contenido de tu página web sin la necesidad de repetir los pasos anteriores ya que Netlify al estar vinculado con GitHub lo actualizará automáticamente.

Utilizando GitHub Pages

A diferencia de Netlify, este servidor es parte de Github, por lo que no necesitamos conectarnos a una nueva cuenta. Dentro del repositorio remoto debemos ir a Settings

En el repo de Github, ir a Settings

Luego, buscamos la sección de GitHub Pages y seleccionamos en la rama (Branch) donde se encuentra nuestro contenido web. Tener en cuenta que el dominio de nuestra página web será el nombre del repositorio, el cual puede ser cambiado después de haber sido creado.

Seleccionar Branch main

Para información más detallada te recomendamos visitar la página de GitHub Pages.

🔊 ¡Ahora solo queda que difundas tu sitio a la comunidad!

Bonus track

Para agregar una nueva nota dentro de la página web tenemos que ir a Addins y seleccionar New Post. Se abrirá una ventana donde podremos completar la información del título, les autores, etiquetas, fecha, categorias y seleccionar la ubicación de la nueva nota.

Ventana emergente para completar la información del post

En la ultima versión de blogdown

En el caso de estar trabajando con la última versión de blogdown, recomendamos seguir los consejos provistos por Alison Hill en su presentación para L.A. R Users Group para configurar la versión de Hugo y buenas prácticas para la construcción de una página web.

Sobre esta nota y algo más

La nota fue escrita en colaboración con Pamela Pairo y Yanina Bellini Saibene. Originalmente fue publicada en dos partes en la web personal de Pamela, aquí hago un único post: ¿Porqué necesitás tener una página web? y Creando una página web bilingüe en R

Pamela presentó una charla breve, que recomiendo, en la conferencia RStudio::global(2020) (en inglés, con subtítulos): “An easy and friendly way to build your multilingual website”. Dejo el video por si tienen interés (en inglés, con subtítulos).

Fuentes consultadas


  1. Para información mas detallada sobre el uso de Git te sugerimos consultar el libro de Jenny Bryan (en inglés), Happy Git and GitHub for UseR↩︎

  2. Se pueden elegir otros themes aquí o si te animás podes crearte el tuyo↩︎

  3. En el caso de que se elijan otros idiomas, las subcarpetas a crearse deben respetar las siglas según se muestra aquí↩︎

Relacionado