Más cosas con Quarto

(Web del curso aquí)

20 de mayo de 2024

Con Quarto se pueden hacer muu🙀uuchas más cosas!!!



Veamos algunas de ellas

6.1 Subir nuestras web’s a la UV

  • Una vez hemos generado nuestra web en local con Quarto nos queda subirla a Internet. La documentación oficial de Quarto está aquí


  • Hay muchos servicios de alojamiento, puedes ver algunos de ellos aquí.

  • Por ejemplo, aquí explican las ventajas y cómo subir una web a Netlify.


  • Pero … nosotros tenemos un espacio en la web de la UV, así que …

Práctica: Subir nuestras web’s


Tarea 6.1a: Subir tu web

  • Sí, tienes que subir tu web a tu espacio en el servidor web de la UV


  • Ya Pedro, pero no me ha dado tiempo a hacerme la web 🙆‍♂️, ¿qué hago?
  • Puedes usar esta plantilla hecha por mi o una plantilla chulísima hecha por Marvin Schmitt. Marvin nos explica cómo usarla en este post
  • Ahora ya no hay excusa para hacer la tarea 😉

Tarea 6.1a: Subir tu web

  • Sí, tienes que subir tu web a tu espacio en el servidor web de la UV
  • Para subir nuestra web a nuestro espacio UV, solo tenemos que subir los ficheros de la carpeta docs o _site a la web de la UV

  • Pero antes, hay que tener activado vuestro espacio web en UV. Veamos cómo hacerlo con este post

  • Perfecto!!, pero, imagina que te vas a un congreso y ahora quieres subir unas slides para poder hacer la presentación desde la web. ¿Cómo lo haces?

Tarea 6.1b: Subir unas slides

  • Sí, tienes que subir unas revealjs slides a tu espacio web en la UV
  • Si has hecho las slides autocontenidas, entonces sólo tendrás que subir el fichero my_slides.html a tu espacio web en la UV

  • Consejo: yo alojaría las slides en un directorio llamado slides o presentaciones o algo similar

6.2 Gestión de bibliografia

  • Imagina que queremos incorporar referencias bibliográficas en uno de nuestros post; y además queremos referenciarlas en el cuerpo del artículo ¿te suena, no?

Además,

  • no queremos tener que copiar a mano las referencias y

  • tampoco queremos tener que cambiar el formato 😱😱 de las referencias si es que decidimos cambiar de revista


¿Cómo lo hacemos?

  • Os lo cuento en este post, y vamos a practicarlo con una tarea

Práctica: Gestión de bibliografía

  • Para ello, vamos a utilizar el archivo: ./tareas/tarea_6.2_biblio.qmd que puedes encontrar en el “Qproj_01_eurovision” que puedes descargarte aquí

Tarea 6.2: Incorporar y gestionar referencias bibliográficas

  • Resulta que ya tenemos el documento .bib con la información de nuestras refrencias. Está en: ./assets/refrences.bib

  • Tenemos que referenciar el documento .bib en el yaml del .qmd. Algo como:

bibliography: <ruta-a-my_references.bib>


  • Pero … tenéis que pensar como poner la ruta a: ./assets/references.bib


  • Una vez hecho, procesa el .qmd . ¿Qué ha pasado? ¿Se han incorporado las referencias?

  • No. ¿Por qué? 🤔

  • Por defecto solo se muestran las referencias que hemos utilizado en nuestro .qmd

  • Así que, vamos a incorporar en el texto de nuestro .qmd algunas alusiones a nuestras referencias.

  • Para ello vamos a utilizar el editor Visual de RStudio.

  • Ahora vamos a añadir una nueva referencia a nuestro fichero .bib. Por ejemplo esta

  • Para ello, también vamos a usar el editor Visual de RStudio

  • Insertemos una alusión a esta nueva referencia en el texto de nuestro .qmd; si no, no apareceré en el listado de referencias.

  • Por defecto Pandoc, y por ende Quarto, usa el “Chicago Manual of Style”, pero podemos cambiarlo.

  • Por ejemplo, vamos a cambiar el estilo de las referencias a “American Psychological Association”

  • Para ellos hay que obtener/usar un archivo CSL (Citation Style Language)

  • Puedes obtener ficheros .csl para multitud de formatos aquí. Solo tenemos que buscar el estilo que queremos y descargarlo.

  • Por ejemplo, nos descargamos el fichero para el formato APA 7th edition. Este es el enlace de descarga

  • Para usar el archivo .csl que acabamos de descargar hay que referenciarlo en el yaml, añadiendo algo como:

csl: <ruta-a-my-fichero.csl>
  • Vuelve a procesar el .qmd. ¿Qué ha pasado? ¿Se han cambiado las referencias?



6.3 Generar el mismo documento en múltiples formatos

  • Sí, una de las múltiples ventajas de Quarto es que, con un mismo documento .qmd (o documento fuente) podemos generar documentos en múltiples formatos. Por ejemplo, .html, .docx, .pdf, .epub etc.


¿Cómo? Solo hay que hacer 2 cosas :
  1. especificarlo en el YAML, por ejemplo:

    title: Mi documento
    author: Pedro J. Pérez
    toc: true
    format: 
      html: default
      epub: default
      docx: default
  2. El render del documento se ha de hacer desde la Terminal:

    quarto render mi-multi-format-document.qmd

Múltiples formatos (más posibilidades)


Render, con opciones, desde la Terminal

  • Otra posibilidad es hacer el Render desde la Terminal con opciones. Algo como:

    quarto render my-document.qmd --to pdf
    
    quarto render tareas/tarea_6.3_varios-formatos.qmd --to epub


Otra posibilidad

  • Los documentos .html que generemos, ya sean estos documentos individuales o dentro de una web, pueden incluir links al mismo documento en otros formatos. Documentación aquí.

  • El YAML del documento tendría que quedar algo como:

    format: 
      html: default
      docx: default
    format-links: [docx]

Práctica: Documentos con varios formatos


Tarea 6.3: Obtener varios formatos con el mismo .qmd

  • Procesa el documento: ./tareas/tarea_6.3_varios-formatos.qmd. Lo puedes encontrar en el “Qproj_01_eurovision” que puedes descargarte aquí

  • Fíjate que el yaml ya está preparado para generar 2 formatos: .html y .docx

  • Recuerda que hay que hacer el Render desde la Terminal 🤔

  • En la terminal has de escribir algo como:
quarto render tareas/tarea_6.3_varios-formatos.qmd

6.4 Ejercicios interactivos

  • Hay varios paquetes como learnr que permiten incorporar ejercicios interactivos a documentos .html generados con Quarto, pero …
      … tienen un inconveniente: los tutoriales deben ser ejecutados locamente
          o alojados en un servidor shiny


  • El paquete webexercises soluciona ese problema ya que genera “standalone HTML files that require only a JavaScript-enabled browser”.

  • El objetivo de webexercises es:

To enable instructors to easily create interactive web pages that students can use in self-guided learning

Práctica: Ejercicios interactivos con webexercises


Tarea 6.4: Jugar un poco con webexercises

  • Abre el documento: tareas/tarea_6.4_webexercises.qmd que puedes encontrar en el “Qproj_01_eurovision” que puedes descargarte aquí

  • Mira su contenido

  • Procesa el documento

  • Abre el documento html que se ha generado y … trata de resolver las preguntas

  • Añade una nueva pregunta


```{{r}}
#| results: asis
opts <- c(
   "Quarto es cuatro en balinés",
   answer = "Un sistema de publicación científico-técnica de acceso abierto que es lo más!!!",
   "Quarto es una marca de muebles sueca"
)

cat("¿Qué es Quarto?", longmcq(opts))
```


  • Para usar el paquete hay que instalarlo, por ejemplo con: pak::pak("webexercises")


  • Para procesar correctamente los ficheros “webexercises” hay que tener los .css y .js necesarios. Para ello:

    webexercises::add_to_quarto(include_dir = "assets/webexercises")
    • Cuidado porque genera ruta a los assets en el YAML del fichero .qmd, pero también en el fichero _quarto.yml (mejor quitarlos de _quarto.yml)


  • Nosotros ya teníamos una plantilla “webexercises” en la carpeta ./tareas/tarea_6.4_webexercises.qmd. La creé con algo como:

    webexercises::create_quarto_doc(name = "my_titulo", open = interactive())

6.5 Incorporar tablas

  • A veces veces tenemos unos datos, o un listado de algo como: tareas, estudiantes, calendario etc… en un fichero Excel, o Google Sheet, que queremos incorporar a nuestros documentos, ¿Cómo lo hacemos?
  • Si tenemos los datos en el fichero datos/matriculados.xlsx solo habría que:
```{r}
df <- rio::import("./datos/matriculados.xlsx")
gt::gt(df)
```
```{r}
df <- rio::import("./datos/matriculados.xlsx")
DT::datatable(df)
```


Si los datos los tuviesemos en Google Sheets:

# googlesheets4::gs4_deauth() #- si tuvieses q autorizar
my_url <- "https://docs.google.com/spreadsheets/d/16XpV9I0_hoyPqV6o7Pkir4c_mmwgHM4UuGXuM7t7vUc/edit?usp=sharing"
df <- googlesheets4::read_sheet(my_url)
gt::gt(df)


  • Un ejemplo en esta web. Es un curso de Mine Çetinkaya-Rundel en el que el calendario de sesiones se carga desde un archivo de Google Sheets. El código para hacer la tabla puedes verlo aquí. El documento de Google está aquí

6.5 Un poco más de tablas


¿Cómo hacer tablas más chulas?

  • En este post explica en detalle cómo se pueden hacer tablas muy chulas con R


Tablas estadísticas

  • Muchas veces hay que presentar los resultados de contrastes o de la estimación de modelos estadísticos. En estos casos, las tablas son una herramienta muy útil para presentar los resultados de una manera clara y concisa.


  • Vamos a profundizar en ello con este post del blog

6.6 Informes parametrizados

  • A veces necesitamos generar informes con datos diferentes. Por ejemplo, un informe de ventas de diferentes productos, o un informe para cada municipio, o un informe para cada periodo

  • En este post del blog se explica cómo hacerlo.


  • Muchas veces es más fácil hacerlo que contarlo, así que:

Tarea 6.6: Aprender a hacer informes parametrizados

  • Para ello, vamos a usar el Qproject llamado “Qproj_02_param-rep” que puedes descargarte aquí


6.7 “Reutilizar” unas slides

  • Imagina que has visto unas slides chulisimas y quieres copiarlas inspirarte en ellas para hacer las tuyas propias. ¿Cómo lo haces?
  • Es muy habitual que la comunidad R comparta el código de sus materiales; principalmente en GitHub



Tarea 6.7: Aprender a “reutilizar” materiales

  • Vamos a reutilizar el código de una de las 2 slides anteriores.

  • Sí, se aprende mucho viendo el código de otros

6.8 Typst (en Quarto)

  • Typst es un sistema de tipografía moderno inspirado en Markdown, diseñado para ser tan potente como LaTeX pero más fácil de aprender y usar.

  • Typst se incorporó en Quarto en la versión 1.4

  • Puedes ver algunas de sus ventajas aquí, aquí o aquí


  • Aunque ya que estamos en un curso de Quarto, prefiero estas slides de Nicola Rennie o este video de Carlos Scheidiger en posit::conf(2023) donde presenta typst y explica cómo se usa desde Quarto.

  • La documentación oficial de Quarto sobre Typst

Typst (en Quarto)

Plantillas Typst en Quarto

  • Plantillas Quarto oficiales de typst aquí

  • Plantillas typst de Andrew Heiss aquí.

  • Puedes buscar más plantillas aquí


Plantillas Typst “originales”