Commit graph

118 commits

Author SHA1 Message Date
a12f0880bf Ajout du schema JSON-LD BreadcrumbList sur les pages internes
Fil d'Ariane automatique basé sur le pathname : Accueil → Section → Sous-page. Adapté aux 3 langues (Accueil/Home/الرئيسية). Absent sur les pages d'accueil.
2026-02-21 15:17:12 +01:00
d44f190845 Ajout du web manifest et des favicons multi-tailles
Génération des favicons 16x16, 32x32, 180x180 (apple-touch-icon), 192x192 et 512x512 depuis jalil-2.jpg. Création du site.webmanifest. Ajout de theme-color et remplacement de l'ancien favicon dans les deux layouts.
2026-02-21 15:10:38 +01:00
91296ecdf5 Ajout du schema JSON-LD BlogPosting pour les articles photo
Les photo blog posts génèrent maintenant un JSON-LD BlogPosting avec headline, datePublished et lien vers le schema Person via @id. PhotoBlogPostContent passe description, date et tags à PhotoLayout qui les transmet au composant SEO.
2026-02-21 14:58:40 +01:00
c0cb3e08a0 Ajout du flux RSS pour le photo blog
Création de la route /rss.xml avec les 13 posts photo FR via @astrojs/rss.
2026-02-21 14:40:33 +01:00
23510f59b1 Infrastructure SEO complète : sitemap, meta descriptions, OG, Twitter Cards, JSON-LD, hreflang
- 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
2026-02-21 14:37:54 +01:00
7cb920f773 Ajout du nom "Jalil Arfaoui" dans le header et retrait du logo du footer
Le header des pages internes n'affichait qu'une icône maison, sans identifier le site. Le nom est maintenant visible à côté de l'icône. Le footer n'a plus besoin du composant Logo puisque le copyright contient déjà le nom.
2026-02-21 13:51:05 +01:00
37362efdda Ajout de Plausible Analytics sur toutes les pages (main + photo) 2026-02-18 21:45:34 +01:00
5e144e6e35 Retrait des dépendances sharp ajoutées manuellement
Le fix repose sur CC_BUILD_COMMAND="npm install --ignore-scripts && npm run build" côté Clever Cloud, qui empêche le postinstall de sharp de planter. Plus besoin de forcer sharp en devDependency explicite.
2026-02-18 21:33:59 +01:00
45359bf5d0 Ajout des binaires sharp linux-x64 en devDependencies explicites
Les binaires précompilés de sharp (@img/sharp-linux-x64 et @img/sharp-libvips-linux-x64) étaient en optionalDependencies, ce qui faisait qu'ils n'étaient pas installés sur Clever Cloud. En les ajoutant explicitement, npm les installe obligatoirement.
2026-02-18 19:22:01 +01:00
0ee5f0e229 Ajout des coordonnées SAS Tiqa sous le logo sur les pages /code (FR/EN/AR) 2026-02-18 19:07:51 +01:00
41699e5d03 Ajout de sharp en devDependency explicite pour corriger le build Clever Cloud
sharp était uniquement en optionalDependency d'Astro, ce qui faisait
qu'il n'était pas installé sur Clever Cloud. Le build échouait avec
"Rollup failed to resolve import sharp".
2026-02-18 18:58:03 +01:00
4bd0595e3a Blocs de la homepage entièrement cliquables (FR/EN/AR)
Les cartes Code et Théâtre sont des <a> directs. La carte Photo utilise un stretched link avec le lien Fil Photo cliquable indépendamment par-dessus.
2026-02-18 18:56:17 +01:00
10a67a9276 Ajout de la facette Code : fond violet Tiqa, contenu complet FR/EN/AR et logo
Système de facettes via data-facet sur body avec CSS global pour thématiser les pages /code avec la couleur Tiqa (#4b1762). Header et footer restent blancs avec texte violet. Contenu enrichi depuis tiqa.fr et LinkedIn (parcours détaillé, points forts, valeurs, compétences, présence en ligne). Balise footer sémantique.
2026-02-18 18:46:21 +01:00
66c391a5de Ajout d'une page 404 multilingue (FR/EN/AR) 2026-02-18 18:32:13 +01:00
0644038d64 Redirection permanente /photos → https://photos.jalil.arfaoui.net 2026-02-18 18:11:38 +01:00
ae565d46ac Migration Astro v4 → v5 avec Content Layer API
- Mise à jour astro@5.17, @astrojs/tailwind@6, @astrojs/check
- Remplacement des content collections legacy par des loaders glob()
- Déplacement src/content/config.ts → src/content.config.ts
- entry.slug → entry.id, entry.render() → render(entry)
- Ajout de generateId personnalisé pour préserver les points dans les IDs des fichiers multilingues (.en, .ar)
2026-02-18 18:11:29 +01:00
73d4d2fa06 Ajout de .claude/, .direnv/ et .clever.json au .gitignore 2026-02-18 16:13:08 +01:00
d8f71a3040 Mise à jour du chemin WebDAV dans .env.example 2026-02-18 16:13:08 +01:00
220a29957a Suppression des images inutilisées dans public/assets/images 2026-02-18 16:13:08 +01:00
5ff1b23545 Ajout du nettoyage des fichiers orphelins dans fetch-images 2026-02-18 16:13:08 +01:00
b5964cdc78 Ajout du sélecteur de langue dans le footer photo 2026-02-18 16:13:08 +01:00
3d23e84b34 Internationalisation complète et ajout des pages code, théâtre, acting (FR, EN, AR)
Ajout des pages code et théâtre/acting en FR, EN et AR.
Création de vraies routes localisées /en/photo et /ar/تصوير au lieu du hack ?lang=. Extraction de composants partagés (PhotoHomeContent, PhotoBlogIndexContent, PhotoBlogPostContent, PhotoAlbumContent) pour éviter la duplication entre langues. Traduction des catégories photo (16 fichiers JSON), de la navigation, du footer et des aria-labels.
Routes AR avec slugs arabes (/ar/تصوير/مدونة, /ar/تصوير/ألبومات).
2026-02-18 16:12:53 +01:00
4c6f57cd6a Utilisation du composant Image d'Astro pour les photos de profil
Déplacement de jalil.jpg et jalil-2.jpg de public/ vers src/assets/images/ pour permettre l'optimisation automatique (webp, redimensionnement). Mise à jour des 6 pages (index et à propos en FR, EN, AR) pour utiliser <Image> au lieu de <img>.
2026-02-18 11:22:05 +01:00
cd1ca94b11 Ajout section Explorer sous le diaporama /photo et factorisation HeroViewport
La page /photo affiche maintenant une flèche de scroll invitant à découvrir
une section de navigation avec les catégories et le fil photo en dessous du
diaporama, avec un dégradé progressif entre les deux.

Le pattern "hero viewport + scroll indicator" est factorisé dans un composant
HeroViewport réutilisable, utilisé par /photo (mode transparent), les albums
de catégories et les posts du fil photo.
2026-02-18 10:28:57 +01:00
c80e2bd386 Suppression du CSS mort de l'ancien toggle dark mode (#darkToggle, animations sun/moon) 2026-02-18 09:26:00 +01:00
98778965d2 Remplacement du div onclick par un button pour le backdrop du menu mobile (accessibilité)
Le backdrop utilisait un div avec onclick inline. Remplacé par un <button> avec aria-label et le listener déplacé dans un script du composant.
2026-02-18 08:54:28 +01:00
6115268587 Mise à jour des photos favories 2026-02-18 08:44:17 +01:00
261323b4ce Remontée des boutons prev/next au-dessus du footer sur mobile 2026-02-18 00:58:26 +01:00
90e673901e Réorganisation du photo blog avec URLs /photo/blog/YYYY/slug
Les images et les fichiers de contenu sont maintenant organisés par année (blog/2015/enigma/ au lieu de blog/enigma/) pour mieux s'y retrouver avec un volume croissant de posts. Le coverImage dans les frontmatters ne contient plus qu'un nom de fichier, résolu dynamiquement via import.meta.glob.
2026-02-18 00:55:13 +01:00
835519a0c2 Extraction du footer photo en composant et correction responsive mobile 2026-02-18 00:49:21 +01:00
37339f4ebe Ajout lien Photo dans le header avec séparateur et correction alignement mobile 2026-02-18 00:12:45 +01:00
d01d42fbfb Ajout d'un lien Photo dans le header de la navigation photo 2026-02-17 23:49:07 +01:00
c3cc6915db Ajout de padding entre les cartes sur /photo/blog 2026-02-17 23:33:12 +01:00
3566488a0a Correction affichage dates et style minimaliste sur /photo/blog 2026-02-17 23:18:32 +01:00
d82e51c4c9 Changement de couverture pour le mariage Aurore & Thomas 2026-02-17 16:48:19 +01:00
dd8877e3bf Mise à la une : médina de Tanger et mariage, retrait d'Enigma 2026-02-17 16:46:46 +01:00
d6e8596de5 Traduction FR/EN/AR des 4 derniers posts photo 2026-02-17 15:30:44 +01:00
e1ba1a5988 Traduction FR/EN/AR du post Dimanche Séquanais 2026-02-17 12:11:26 +01:00
009816adc6 Traduction FR/EN/AR du post Opération Cartable 2012 2026-02-17 12:08:27 +01:00
b5f548e4a7 Traduction FR/EN/AR du post No Wind at Las Cuevas 2026-02-17 11:52:39 +01:00
b2d7b9f457 Traduction FR/EN/AR du post London Calling 2026-02-17 11:49:10 +01:00
3d3ca4122c Modifie la couverture pour le post Ifrane Hike 2026-02-17 11:47:38 +01:00
babf6d9d8d Traduction FR/EN/AR du post Inox Park 2011 2026-02-17 10:32:18 +01:00
d88c377969 Traduction FR/EN/AR du post Ifrane Hike 2026-02-17 10:30:17 +01:00
f8f28ec7bd Traduction FR/EN/AR du post Helsinki 2026-02-17 10:27:00 +01:00
8f530eba83 Traduction FR/EN/AR du post Field of Stones 2026-02-17 10:24:45 +01:00
533a0ccd22 Traduction FR/EN/AR du post Eroll 2026-02-17 10:19:49 +01:00
8cfaae7849 Ajout de l'image jalil.jpg 2026-02-17 10:14:07 +01:00
4860971bc7 Suppression des favicons inutilisées (fta.ico, wulian.ico, yoho.ico) 2026-02-17 10:13:39 +01:00
e057a86f93 Suppression des images inutilisées (about.jpg, cover.png, photo.png) 2026-02-17 10:13:26 +01:00