<div class="breadcrumbs">
[Inicio](../../../index.qmd) >
[Blog](../../index.qmd) >
[{{< meta categories.1 >}}](../{{< meta tags.1 >}}.qmd) >
<span>{{< meta title >}}</span>
</div>Cómo crear breadcrumbs dinámicos en Quarto
Este artículo conserva una solución desarrollada para la arquitectura anterior. En la versión actual del sitio, la navegación se resuelve principalmente con la estructura nativa de Quarto y metadatos consistentes.
Si estás construyendo un sitio web o blog con Quarto, seguramente quieres que tus lectores sepan exactamente dónde están en tu estructura de contenido. Una herramienta esencial para lograrlo son las famosas migas de pan (breadcrumbs).
Las breadcrumbs mejoran la experiencia del usuario, permiten retroceder fácilmente y refuerzan la arquitectura de información de tu sitio.
En este artículo, te muestro cómo implementar breadcrumbs dinámicos en Quarto, aprovechando los metadatos del documento (YAML) sin necesidad de JavaScript ni shortcodes complejos. Todo usando el motor nativo de Quarto.
✅ Objetivo
Crear un breadcrumb automático como el siguiente:
Inicio > Blog > [Categoría] > [Título del Post]Donde:
[Categoría]viene del primer elemento decategoriesen el YAML.
[Título del Post]viene del campotitle.
En breadcrumbs, cada término está asociado a un respectivo enlace.
Además, se define una estructura de blog ordenado mediante subcarpetas para un aislamiento de contenido, escalabilidad y compatibilidad con Quarto. No obstante, la lógica funciona para cualquier otra estructura.
mi-pagina-web/
├── index.qmd
├── _includes/
│ └── breadcrumb.qmd
├── blog/
│ ├── index.qmd
│ ├── astrobiologia/
│ │ └── vida-en-marte/
│ │ └── vida-en-marte.qmd
│ ├── neurociencia/
│ │ └── cerebro-plastico/
│ │ └── cerebro-plastico.qmd
│ ├── fisica-cuantica/
│ │ ├── fisica-cuantica.qmd
│ │ └── entrelazamiento/
│ │ └── entrelazamiento.qmd
│ ├── biotecnologia/
│ │ └── edicion-genetica/
│ │ └── edicion-genetica.qmd💡 Solución basada en metadata
Como ejemplo, se define el siguiente post sobre Entrelazamiento Cuántico con la siguiente YAML
---
title: "Entrelazamiento Cuántico"
description: "Explorando uno de los fenómenos más misteriosos de la física moderna."
date: 2025-06-03
categories: ["Física Cuántica"]
tags: ["fisica-cuantica", "cuántica", "entrelazamiento", "mecánica-cuántica"] # ← En minúsculas, para rutas
image: images/thumbnail-entrelazamiento.png
---✅ Resultado final
title: "Entrelazamiento Cuántico"
categories: ["Física Cuántica"]
tags: ["fisica-cuantica", "entrelazamiento", "mecánica-cuántica"]<div class="breadcrumbs">
<a href="../../../post_principal.qmd">Inicio</a> >
<a href="../../blog/index.qmd">Blog</a> >
<a href="../fisica-quantica.qmd">Física Cuántica</a> >
<span>Entrelazamiento Cuántico</span>
</div>La demostración anidada utilizada originalmente para este artículo no se migró: era contenido de prueba, no una colección real del blog. El patrón de código se conserva como referencia histórica.
🎨 Estilo opcional (CSS)
Agrega este CSS a tu styles.css para mejorar la apariencia:
.breadcrumbs {
font-size: 0.9rem;
color: #666;
margin: 1.5rem 0;
padding: 0.5rem 0;
border-bottom: 1px solid #eee;
}
.breadcrumbs a {
color: #006AD4;
text-decoration: none;
}
.breadcrumbs a:hover {
text-decoration: underline;
}
.breadcrumbs span {
color: #333;
font-weight: 600;
}✅ Ventajas de esta solución
| Característica | Beneficio |
|---|---|
| 📦 Reutilizable | Un solo archivo para todos los posts |
| 🧩 Dinámico | Usa metadatos del post |
| 🌐 Compatible | Funciona en GitHub Pages sin JS |
| 🔧 Mantenible | Fácil de actualizar |
🔄 Alternativas consideradas (y por qué no las usé)
| Alternativa | Problema |
|---|---|
| JavaScript | Rompe SSR, no recomendado para SEO |
| Shortcode personalizado | Requiere más configuración y no siempre es portable |
🏁 Conclusión
Crear breadcrumbs dinámicos en Quarto es posible y simple, si sabes cómo aprovechar los metadatos del documento. Mi solución combina:
tagspara controlar rutas (quarto.qmd)categoriespara mostrar nombres legibles (Quarto)- {{< meta >}} dentro de enlaces Markdown
Esta técnica mejora significativamente la usabilidad de tu blog o sitio académico.
🔗 Recursos relacionados
Cómo citar
@online{jácobo-zavaleta2025,
author = {Jácobo-Zavaleta, Sergio},
title = {Cómo crear breadcrumbs dinámicos en Quarto},
date = {2025-09-13},
url = {https://sjacobozavaleta.github.io/blog/posts/2025/dynamic-breadcrumbs-quarto/},
langid = {es}
}
