Commit graph

93 commits

Author SHA1 Message Date
6714bb62a6 Accueil : réordonnancement sous-titre Développeur • Photographe • Comédien (FR, EN, AR) 2026-03-11 00:13:02 +01:00
56eb6ce559 Valeurs & Approche : tirets latéraux violet, factorisation composant ValueItem 2026-03-11 00:01:54 +01:00
412e7033d1 ProjectCard : glow au hover, titre plus grand, technos principales différenciées 2026-03-10 23:45:22 +01:00
58594c37bc Section Parcours : mini-timeline visuelle, expériences featured, lien vers parcours complet 2026-03-10 23:40:44 +01:00
6d10824a92 Hero section /code : badge, titre plus grand, trait accent gradient 2026-03-10 23:21:18 +01:00
578c6733db Pages de détail individuelles pour les projets (FR, EN, AR)
Les cartes projet sont désormais cliquables et mènent vers une page de détail qui affiche le contenu markdown riche (historique, architecture, impact) avec les technologies, liens externes et hreflang.
2026-02-27 01:33:57 +01:00
6f13800716 Description enrichie du projet Débats.co (FR, EN, AR) 2026-02-26 13:14:44 +01:00
d53039c75d Fix détection langue Google pour les pages arabes : hreflang + localisation UI
- decodeURIComponent dans getAlternateUrls pour matcher les pathnames arabes percent-encoded
- Localisation des aria-label et title (logo, menu mobile, dark mode toggle) via i18n.ts
- Ajout section ui dans les traductions (closeMenu, changeTheme, themeAuto/Light/Dark)
- Refacto logo.astro : utilise getHomePath/getLocaleFromUrl au lieu de logique dupliquée
- Refacto header.astro : utilise getLocaleFromUrl au lieu de détection manuelle
2026-02-26 12:06:55 +01:00
6df73851e5 Description enrichie du projet DisMoi (FR, EN, AR) 2026-02-24 01:05:09 +01:00
484c942541 Description enrichie du projet mon-entreprise (FR, EN, AR) 2026-02-24 00:36:56 +01:00
8148d2c954 Refonte page d'accueil : bloc code élargi, couleurs charte Tiqa, palette harmonisée
- Renommé « Développeur » en « Conception logicielle » (FR/EN/AR)
- Bloc code pleine largeur avec mission en cours, projets featured et compteur de recommandations
- Théâtre et Photographie en 2 colonnes en dessous
- Palette tiqa (#4b1862) dans tailwind.config.mjs, appliquée au bloc code et bouton CTA
- Bloc théâtre en amber, bloc photo en slate
- Corrigé typo couleur facette code dans le layout (#4b1762 → #4b1862)
2026-02-23 01:50:46 +01:00
76bd2f9fb3 Intro enrichie et polices optimisées en WOFF2
Reprend le texte de /a-propos dans l'intro des 3 hubs /code : stack,
rapport au logiciel libre, biais dans le code, enseignement. Convertit
les polices Raleway en WOFF2 (52 Ko vs 180 Ko en TTF), ne charge que
le SemiBold utilisé par le h1.
2026-02-23 01:25:51 +01:00
0ac8a33c4c Style épuré pour /code : Raleway, espacements, cards simplifiées
Ajoute la police Raleway (charte Tiqa) pour le h1. Supprime la
section compétences, simplifie les cards d'expérience en séparateurs,
retire les encadrés glassmorphism des sections Valeurs et Communauté,
allège les liens en ligne. Plus d'espacement vertical entre sections.
2026-02-23 01:15:59 +01:00
a7362730ba Sitemap hreflang corrigé pour URLs traduites et routes dynamiques
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.
2026-02-23 01:04:02 +01:00
758b48521e Nettoyage projets : suppression DNS.Surf, Email.ML, GoBuild
Seuls Débats et DisMoi sont featured sur les hubs /code. Supprime
la vignette "Featured" du ProjectCard. Le hub filtre désormais sur
featured au lieu de prendre les 3 premiers.
2026-02-23 00:47:09 +01:00
6fb2f8e4d3 Fusion intro et titre pro pour les pages hub /code
Fusionne la double intro (sous-titre + bloc encadré) en un seul
paragraphe. Remplace le titre "Code" par "Artisan du logiciel" (FR),
"Software Craftsman" (EN), "حِرَفيّ البرمجيات" (AR).
2026-02-23 00:40:52 +01:00
89ab849050 Liens soulignés sur fond sombre pour meilleure lisibilité
Remplace text-indigo-600 par text-purple-200 avec soulignement
discret, cohérent avec le thème violet du site.
2026-02-23 00:33:00 +01:00
d21bf6f9c0 Recommandations featured sélectionnées pour le hub /code
Ajout du champ featured au schéma des recommandations. Les pages hub
affichent uniquement les recommandations marquées featured au lieu
des 3 plus récentes.
2026-02-23 00:19:56 +01:00
f4b71d387f Layout masonry avec ordre de lecture naturel pour les recommandations
Remplace CSS columns (ordre vertical) par deux colonnes flex avec
distribution en zigzag : les plus récentes en haut, lecture
gauche-droite ligne par ligne, hauteur naturelle des cartes préservée.
2026-02-23 00:14:18 +01:00
53c9f5ffb4 mise à jour des avatars de recommandations 2026-02-23 00:08:12 +01:00
3e4a632adc Ajout de 4 recommandations Malt et avatars manquants
Nouvelles recommandations : John Samson, Thomas Kientz, Thomas
Morellato, Vadim Toropoff. Champ company rendu optionnel dans le
schéma. Ajout de 11 avatars.
2026-02-22 15:01:37 +01:00
e48a551dcb Refonte des pages hub /code en aperçus de contenu
Remplace les NavigationCards génériques par des aperçus réels :
4 expériences récentes, 3 projets featured, 3 catégories de
compétences et 3 recommandations, chacun avec lien "Voir tout".
Supprime le composant NavigationCard devenu inutile.
2026-02-22 14:39:47 +01:00
bf26caded3 Recommandations cliquables avec avatars LinkedIn
- Ajout de liens vers les profils des auteurs de recommandations (prop url)
- Ajout d'avatars pour 7 recommandeurs (Maxime Boudier, Matthieu Diouron, Benoit Sarda, Pascal Gentil, Benoit Talbot, Anne Marchadier, Laurent Perez)
- Simplification du champ avatar : juste le nom de fichier au lieu du chemin complet, résolution automatique via import.meta.glob
- Ajout des URLs de profil LinkedIn dans les 14 fichiers de recommandation
2026-02-22 14:07:09 +01:00
a3732887f5 Restructuration section Code en sous-pages avec collections de contenu
Remplacement de la page unique /code par un hub avec 4 sous-pages :
parcours, projets, compétences, recommandations (FR/EN/AR).

Les données statiques (experiences.json, projects.json) sont remplacées
par des collections Astro (experiences, projects, recommendations) avec
support trilingue. Les recommandations sont les vrais textes LinkedIn.

Le design utilise du glassmorphism sur fond violet avec des composants
dédiés (NavigationCard, ProjectCard, RecommendationCard, SkillBadge...).
Le CSS facet est scopé proprement pour ne plus casser les composants.
2026-02-22 01:30:06 +01:00
575f67665b Descriptions SEO spécifiques pour les pages photo
Chaque page photo a maintenant sa propre meta description au lieu du texte générique : la galerie principale utilise une description trilingue détaillée, les catégories utilisent leur subtitle, et l'index du blog photo utilise la traduction feedDescription.
2026-02-21 15:31:57 +01:00
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