Renderización
Introducción
Esta guía proporciona una visión general de cómo optimizar tus procesos de renderizado de documentos utilizando Quarto. Ya sea que estés trabajando con cuadernos Jupyter o con archivos markdown de Quarto, este tutorial mejorará tu productividad enseñándote:
- Previsualización de documentos: Previsualiza rápidamente tu trabajo en varios formatos directamente desde la terminal.
- Renderizado completo: Comprender los diferentes comandos de renderizado para generar salidas HTML, PDF o Docx.
- Parametrización: Personaliza los documentos dinámicamente estableciendo y utilizando parámetros tanto en entornos Python como R.
- Estrategias de almacenamiento en caché: Implementar el almacenamiento en caché para acelerar el proceso de renderizado y evitar cálculos redundantes.
- Controles de ejecución: Utiliza las flexibles opciones de ejecución de Quarto para gestionar cómo y cuándo se ejecuta tu código.
Vista previa
Previsualizar un documento:
Terminal
# Previsualizar como html
quarto preview document.qmd
# previsualizar como pdf
quarto preview document.qmd --to pdf
# previsualizar un cuaderno jupyter
quarto preview document.ipynb
Renderización
Renderizar documentos en diferentes formatos utilizando comandos como:
Terminal
# todos los formatos especificados, por defecto html
quarto render document.qmd
# Renderizar como pdf o docx
quarto render document.qmd --to pdf
quarto render document.qmd --to docx
Para cuadernos Jupyter (.ipynb), utilice: quarto render document.ipynb
Nota: Para archivos .ipynb
, usa --execute
para ejecutar celdas durante la renderización (si no las has ejecutado ya en el cuaderno).
Terminal
quarto render notebook.ipynb --execute
También puedes especificar este comportamiento dentro del front matter YAML del cuaderno:
---
title: "Mi bloc de notas"
execute:
enabled: true
---
Parametrizar
Establece parámetros para crear diferentes variaciones de un documento usando Jupyter o Knitr:
- En Jupyter, Quarto adopta la sintaxis de Papermill para los parámetros.
- Etiquetar una celda con
parámetros
y establecer valores por defecto para parametrizar un documento.
```{python}
#| tags: [parameters]
alpha = 0.1
ratio = 0.1
```
Los parámetros están disponibles en el entorno de nivel superior:
```{python}
alpha
```
Utilice la opción params
YAML para definir parámetros:
---
params:
alpha: 0.1
ratio: 0.1
---
Los parámetros están disponibles en la lista params
:
```{r}
params$alpha
```
Renderizar con diferentes parámetros utilizando -P
for both .ipynb
and .qmd
:
quarto render document.ipynb -P alpha:0.2 -P ratio:0.3
O utilizar un archivo YAML para los parámetros y --execute-params
:
quarto render document.qmd --execute-params params.yml
Almacenamiento en caché
Caché de ejecución de código para acelerar el renderizado y evitar la reejecución de código sin cambios.
Configuración
La configuración depende del motor de ejecución que esté utilizando (Jupyter o Knitr).
Instalar Jupyter Cache:
- Mac/Linux
python3 -m pip install jupyter-cache
- Windows
py -m pip install jupyter-cache
Habilitar caché globalmente en YAML:
---
title: "Mi documento"
format: html
execute:
cache: true
---
O a nivel de proyecto:
project:
type: website
format:
html:
theme: united
execute:
cache: true
Si lo desea, puede utilizar la línea de comandos jcache
para gestionar la caché de las libretas. Ver documentación Jupyter Cache.
Habilitar caché globalmente en YAML:
---
title: "Mi documento"
format: html
execute:
cache: true
---
O individualmente por celda:
```{r}
#| cache: true
summary(cars)
```
Leer más:
Renderización
Puedes usar las opciones de línea de comandos quarto render
para controlar el comportamiento de la caché sin cambiar el código del documento.
Controlar la caché de quarto render
con opciones de línea de comandos:
--cache
: Forzar caché para todos los chunks (incluso si no está habilitado en las opciones).--no-cache
: Desactivar la caché para todos los chunks (incluso si está activada en las opciones).--cache-refresh
: Refrescar caché para todos los chunks (incluso si no ha sido invalidado).
Alternativas
Desactivar la ejecución
Para trabajar con prosa/markdown, deshabilite la ejecución de código con:
execute:
enabled: false
En los cuadernos Jupyter .ipynb
, el código no se ejecuta con quarto render
por defecto.
Congelar la ejecución
La opción freeze
evita que los documentos se vuelvan a renderizar durante una renderización completa del proyecto o permite que se vuelvan a renderizar sólo cuando cambia su fuente.
# No volver a renderizar durante la renderización del proyecto
execute:
freeze: true
# Renderizar sólo cuando la fuente cambia
execute:
freeze: auto
Freeze
afecta a la ejecución durante el renderizado completo del proyecto. Para documentos individuales o renderizaciones de subdirectorios, la ejecución del código se realiza siempre.
Terminal
# Renderizar un único documento (siempre ejecuta el código)
quarto render document.qmd
# Renderizar subdirectorio de proyecto (siempre ejecuta código)
quarto render articles