Configuración del menú de navegación
Personaliza el menú de navegación de tu sitio para incluir páginas personalizadas, enlaces externos y etiquetas bilingües.
¿Qué es el menú de navegación?
El menú de navegación aparece en el encabezado de tu sitio y proporciona enlaces a:
- Tus historias (generados automáticamente)
- Páginas personalizadas (Acerca de, Créditos, etc.)
- Índice de objetos (incluido automáticamente)
- Recursos externos (opcional)
Cómo funciona
La navegación se configura a través de _data/navigation.yml. Este enfoque basado en datos te da control completo sobre la estructura y etiquetas del menú.
Cuando existe navigation.yml, Telar lo usa para construir tu menú. Si el archivo falta, aparece un menú de respaldo codificado con enlaces básicos (Historias, Objetos, Acerca de).
Crear tu archivo de navegación
Paso 1: crea el archivo
Agrega navigation.yml al directorio _data/:
_data/
├── navigation.yml # Tu configuración de navegación personalizada
├── objects.json # Datos de objetos generados
└── project.json # Datos de proyecto generados
Paso 2: define la estructura de tu menú
Aquí hay una configuración básica:
menu:
- title_en: "Stories"
titulo_es: "Historias"
url: "/"
- title_en: "Objects"
titulo_es: "Objetos"
url: "/objects/"
- title_en: "About"
titulo_es: "Acerca de"
url: "/about/"
- title_en: "Credits"
titulo_es: "Créditos"
url: "/credits/"
Campos requeridos
Cada elemento del menú necesita:
| Campo | Propósito | Ejemplo |
|---|---|---|
title_en |
Etiqueta en inglés | "About" |
titulo_es |
Etiqueta en español | "Acerca de" |
url |
URL de la página | "/about/" |
Campos opcionales
| Campo | Propósito | Ejemplo |
|---|---|---|
external |
Abre en nueva pestaña | true |
Tipos de elementos de menú
Páginas internas
Enlaza a páginas dentro de tu sitio:
- title_en: "Methodology"
titulo_es: "Metodología"
url: "/methodology/"
La URL debe coincidir con el nombre de archivo de tu página (methodology.md → /methodology/).
Enlaces externos
Enlaza a recursos externos:
- title_en: "Project Archive"
titulo_es: "Archivo del Proyecto"
url: "https://archive.example.org"
external: true
Cuando external: true, el enlace se abre en una nueva pestaña con target="_blank".
Página de inicio de historias
Enlaza a la lista de historias:
- title_en: "Stories"
titulo_es: "Historias"
url: "/"
Índice de objetos
Enlaza al catálogo de objetos:
- title_en: "Objects"
titulo_es: "Objetos"
url: "/objects/"
Ejemplo completo
Aquí hay una configuración de navegación completa para un proyecto de investigación:
menu:
# Página de inicio de historias
- title_en: "Stories"
titulo_es: "Historias"
url: "/"
# Catálogo de objetos
- title_en: "Objects"
titulo_es: "Objetos"
url: "/objects/"
# Páginas personalizadas
- title_en: "About"
titulo_es: "Acerca de"
url: "/about/"
- title_en: "Methodology"
titulo_es: "Metodología"
url: "/methodology/"
- title_en: "Team"
titulo_es: "Equipo"
url: "/team/"
- title_en: "Credits"
titulo_es: "Créditos"
url: "/credits/"
# Enlace externo
- title_en: "Full Archive"
titulo_es: "Archivo Completo"
url: "https://archive.example.org"
external: true
Etiquetas bilingües
Cómo funciona la selección de idioma
Telar muestra las etiquetas del menú según la configuración de idioma de tu sitio (telar_language en _config.yml):
- Si
telar_language: en→ Muestra etiquetastitle_en - Si
telar_language: es→ Muestra etiquetastitulo_es
Comportamiento de respaldo
Si a un elemento del menú le falta la etiqueta del idioma apropiado, Telar aplica el siguiente orden de recurrencia:
- Intenta etiqueta del idioma actual (
title_enotitulo_es) - Si falta, intenta el otro idioma
- Si faltan ambas, muestra la URL como etiqueta
Orden del menú
Los elementos del menú aparecen en el orden en que los listas en navigation.yml:
menu:
- title_en: "Stories" # Aparece primero
...
- title_en: "Objects" # Aparece segundo
...
- title_en: "About" # Aparece tercero
...
Actualizar el menú
Agregar una nueva página
Cuando creas una nueva página personalizada:
- Crea el archivo markdown (
components/texts/pages/contact.md) - Agrégalo a
navigation.yml:
- title_en: "Contact"
titulo_es: "Contacto"
url: "/contact/"
- Reconstruye tu sitio
El menú se actualiza automáticamente.
Eliminar una página
Para eliminar una página del menú:
- Elimina o comenta la entrada en
navigation.yml:
# - title_en: "Old Page"
# titulo_es: "Página Antigua"
# url: "/old-page/"
- Reconstruye tu sitio
El archivo de la página puede permanecer en components/texts/pages/ pero no aparecerá en la navegación.
Reordenar elementos
Cambia el orden en navigation.yml:
menu:
# Mueve "About" al principio
- title_en: "About"
titulo_es: "Acerca de"
url: "/about/"
- title_en: "Stories"
titulo_es: "Historias"
url: "/"
# Resto del menú...
Menú de respaldo
Si _data/navigation.yml no existe, Telar muestra un menú de respaldo codificado:
- Stories (página de inicio)
- Objects (catálogo)
- About (si existe
about.md)
Esto asegura que tu sitio siempre tenga navegación básica, incluso sin configuración.
Solución de Problemas
El Menú No se Actualiza
Si tus cambios de menú no aparecen:
- Verifica sintaxis YAML: Usa un validador YAML para verificar que
navigation.ymlsea válido - Reconstruye el sitio: Ejecuta
bundle exec jekyll buildpara regenerar - Limpia caché del navegador: Usa Ctrl+Shift+R (Cmd+Shift+R en Mac) para actualizar forzadamente
- Verifica ubicación del archivo: El archivo debe estar en
_data/navigation.yml(nodata/o_data/nav.yml)
Se Muestra el Idioma Incorrecto
Si las etiquetas del menú aparecen en el idioma incorrecto:
- Verifica
telar_languageen_config.yml - Verifica que estés usando nombres de campo correctos (
title_enytitulo_es, notitleolabel) - Asegúrate de que ambas etiquetas de idioma estén presentes
El Enlace Externo No se Abre en Nueva Pestaña
Agrega el campo external: true:
- title_en: "External Resource"
titulo_es: "Recurso Externo"
url: "https://example.com"
external: true # Requerido para nueva pestaña
Mejores Prácticas
Etiquetas Claras y Descriptivas
Usa etiquetas que describan claramente el destino:
✓ Bien:
- title_en: "Research Methodology"
titulo_es: "Metodología de Investigación"
✗ Evita:
- title_en: "Info"
titulo_es: "Info"
Ordenamiento Consistente
Mantén elementos relacionados juntos:
# Páginas del proyecto
- title_en: "About"
- title_en: "Team"
- title_en: "Methodology"
# Páginas de contenido
- title_en: "Stories"
- title_en: "Objects"
# Recursos externos
- title_en: "Archive"
Limita la Longitud del Menú
Mantén menús enfocados (5-7 elementos es ideal). Para sitios más grandes, considera agrupar contenido de manera diferente o usar enlaces de pie de página para páginas secundarias.
Documentación Relacionada
- Páginas Personalizadas - Crear páginas para enlazar en la navegación
- Referencia de Configuración - Opciones completas de
_config.ymlincluyendotelar_language - Resumen de Personalización - Otras opciones de personalización
Nuevo en v0.6.0: Navegación personalizable con etiquetas bilingües y soporte para enlaces externos.