--- import CategoryNav from './CategoryNav.astro'; import ScrollIndicator from './ScrollIndicator.astro'; import Lightbox from './Lightbox.astro'; import { Image } from 'astro:assets'; import { getEntry } from 'astro:content'; const { category } = Astro.props; // Récupérer les métadonnées de la catégorie const categoryData = await getEntry('photoCategories', category); // Auto-détection des images du dossier de la catégorie const allImages = import.meta.glob<{ default: ImageMetadata }>('/src/assets/images/photos/categories/**/*.{jpg,jpeg,png,webp}'); // Filtrer les images de cette catégorie const categoryPath = `/src/assets/images/photos/categories/${category}/`; const categoryImages = Object.entries(allImages) .filter(([path]) => path.startsWith(categoryPath)) .sort(([a], [b]) => a.localeCompare(b)); // Résoudre les images et générer les métadonnées const images = await Promise.all( categoryImages.map(async ([path, loader]) => { const img = await loader(); const filename = path.split('/').pop() || ''; const title = filename .replace(/\.[^/.]+$/, '') // Enlever l'extension .replace(/-/g, ' ') // Remplacer les tirets par des espaces .replace(/_/g, ' '); // Remplacer les underscores par des espaces return { src: img.default, alt: title, title: title, path: path }; }) ); // Données pour la lightbox const lightboxImages = images.map(img => ({ src: img.src.src, alt: img.alt, title: img.title })); ---