Remplace l'option i18n du plugin sitemap (qui supposait des chemins identiques entre langues) par un serialize custom basé sur getAlternateUrls(). Ajoute le support des routes dynamiques (albums photo, blog posts) via des patterns regex, et l'entrée statique /photo/blog. Toutes les pages traduites ont désormais des hreflang fr/en/ar + x-default corrects dans le sitemap et le HTML.
- Ajout de site: 'https://jalil.arfaoui.net' et @astrojs/sitemap avec support i18n dans astro.config.mjs
- Création de src/components/SEO.astro : meta description, canonical, Open Graph, Twitter Cards, hreflang (fr/en/ar/x-default), JSON-LD Person (11 liens sameAs) sur chaque page et JSON-LD WebSite sur les pages d'accueil
- Création de src/utils/page-translations.ts : mapping centralisé des URLs entre langues
- Fix lang="en" hardcodé dans main.astro → lang dynamique + dir="rtl" pour l'arabe
- Ajout de meta descriptions ciblées sur les 13 pages principales (FR/EN/AR)
- Refactorisation du LanguageSwitcher pour utiliser le mapping centralisé
- Ajout de la directive Sitemap dans robots.txt
Galerie photo :
- Ajout du layout photo avec slideshow plein écran
- Navigation par catégories (portraits, paysages, nature, etc.)
- Section "Fil Photo" avec posts illustrés (photoBlogPosts)
- Lightbox pour les albums de catégories
- Composants : Slideshow, CategoryNav, CategoryGrid, Lightbox, MasonryGallery
Nettoyage :
- Suppression du contenu démo du template (posts, images, about)
- Consolidation src/collections/ dans src/data/
- Suppression du config.js dupliqué (garde config.ts)
- Nettoyage des assets inutilisés (posts/, experiences/)
Corrections :
- Favicon récupéré du site actuel
- Chemins favicon corrigés dans les layouts
UI :
- Page d'accueil mise à jour
- Header/Footer simplifiés
- Nouvelle page À propos