# Quarto

Una (pequeña) introducción

Marta R. Hidalgo

Unidad de Bioinformatica y Bioestadística, CIPF

## RStudio conference

- rstudio::conf(2022)
- Keynote sobre Quarto

Quarto es una extensión de RMarkdown creada por RStudio para independizarse de R.

Lanzado en Julio 2022, en pruebas desde Septiembre 2021

## Qué se puede hacer con Quarto

- Todo lo que se podía hacer con RMarkdown…

- con muchos de sus paquetes…

- y algunas cosas más:

  - Compatible con Jupiter Notebooks y Python

La mayoría de cosas ya se podían hacer antes, pero Quarto las unifica y simplifica.

## Por ejemplo

- Documentos HTML, PDF, Word.

- Presentaciones (esta!)

- Páginas web

- Libros

- Artículos científicos

## Por ejemplo

- Documentos HTML, PDF, Word. ✅

- Presentaciones (esta!) ✅

- Páginas web ✅

- Libros

- Artículos científicos

Es muy fácil de aprender!

## Cómo funciona

Son documentos con encabezados YAML más ricos

    ---
    title: "Quarto"
    subtitle: "Una (pequeña) introducción"
    author: "Marta R. Hidalgo"
    institute: "Unidad de Bioinformatica y Bioestadística, CIPF"
    format:
      revealjs:
        logo: "logo_UBB_english_green_transparent.png"
        footer: "UBB meetings"
    editor: visual
    incremental: false
    chalkboard: true
    preview-links: true
    execute:
      echo: true
    ---

# Documentos

- Múltiples formatos posibles
  - Podemos cambiar de uno a otro cambiando una palabra.
- El editor de texto funciona bastante bien.
- Sintaxis muy parecida a RMarkdown, pero más sencilla.

## Tabs

    ::: panel-tabset
    ### Podemos
    Podemos

    ### poner
    Podemos poner

    ### tabs
    Podemos poner tabs

    ### fácilmente
    Podemos poner tabs fácilmente
    :::

- Podemos
- poner
- tabs
- fácilmente

Podemos

Podemos poner

Podemos poner tabs

Podemos poner tabs fácilmente

## Columnas

    ::: columns
    ::: {.column width="50%"}
    ### Una columna
    Poner columnas
    :::

    ::: {.column width="50%"}
    ### y otra columna
    también es muy fácil
    :::
    :::

### Una columna

Poner columnas

### y otra columna

también es muy fácil

## Ejemplo de HTML y PDF

Documento PDF y HTML solo cambiando una palabra

- PDF
- HTML

    ---
    title: "Práctica 1: Vectores"
    subtitle: "Introducción a R"
    format: html
    execute:
      eval: false
      echo: true
    author: [David Montaner, Francisco Garcia, Marta R. Hidalgo]
    ---
    # Ejercicio 1
    # etc

    ---
    title: "Práctica 1: Vectores"
    subtitle: "Introducción a R"
    format: pdf
    execute:
      eval: false
      echo: true
    author: [David Montaner, Francisco Garcia, Marta R. Hidalgo]
    ---
    # Ejercicio 1
    # etc

# Presentaciones

- Todo lo que podemos hacer con documentos

- Formatos:

  - Revealjs

  - PowerPoint

  - Beamer

## Gráficos interactivos

# Webs

### Puntos a favor

- Podemos crear webs muy fácilmente juntando diferentes ficheros `QMD`.

- Podemos juntar documentos creados con diferentes lenguajes en una misma web.

- Se pueden personalizar muy fácilmente sin necesidad de saber `HTML`.

## Webs

### Puntos en contra

- No he podido incluir widgets de `HTML` más allá de `tabs`

- La integración con Shiny no me parece trivial.

## Cómo hacer una web

- Nuevo proyecto > Quarto website

- Estructura:

  - Diferentes ficheros `QMD` sin formato en el YAML

  - Un único YAML para unirlos a todos

## YAML

    project:
      type: website

    website:
      title: "web"
      navbar:
        left:
          - href: index.qmd
            text: Home
          - about.qmd

    format:
      html:
        theme: cosmo
        css: styles.css
        toc: true

    editor: visual

## Ejemplo real

- Cómo convertir un HTML infinito en una web preciosa

- Automatización de HTML para la web de Ana Blas

  - script de R, que genera

  - script de Quarto, que genera

  - fichero HTML con sus imágenes correspondientes,

  - que copio en la web

# En resumen

## Después de un mes de uso

### Puntos positivos

- Muy flexible
- Fácil de usar
- Super cute! 😍

### Puntos menos positivos

- No todo es compatible con todo y a veces no queda claro qué opciones están disponibles en cada formato.
- Aún tiene camino para desarrollar: me gustaría hacer muchas más cosas de las que se puede.
- No todo funciona como esperaríamos (pero sí el 95%!)