Commit graph

109 commits

Author SHA1 Message Date
52aaa0a5aa Ajout logo GoBuild (Go-Decision) 2026-03-11 23:33:56 +01:00
88ed94dca3 Ajout logo Team Logics 2026-03-11 23:29:37 +01:00
f32cd09940 Tri des expériences par date de fin décroissante puis date de début (parcours et /code, FR/EN/AR) 2026-03-11 23:21:54 +01:00
366d18764b Héritage i18n : les fichiers EN/AR ne surchargent que les champs traduits, les métadonnées partagées sont héritées de la base FR
Ajout de getLocalizedCollection/getLocalizedEntry dans content-i18n.ts pour fusionner automatiquement les entrées localisées avec leur base FR. Schémas adaptés (champs partagés optionnels), 78 fichiers de contenu allégés, consommateurs migrés.
2026-03-11 23:17:19 +01:00
a79e075fbb Ajout logo e-Themis, lien site web et correction du nom de société (eThemis → e-Themis) 2026-03-11 22:29:15 +01:00
b34e9420f3 Fusion des 2 expériences Veepee en une seule mission freelance (fév. 2016 → juin 2019) 2026-03-11 17:27:23 +01:00
fca4608beb Extraction composant CareerTimeline : suppression de la duplication 3x entre pages FR/EN/AR, traductions centralisées dans i18n.ts 2026-03-11 17:20:23 +01:00
5b887c7926 Refactoring CSS cards parcours : CSS partagé, propriétés logiques, suppression des !important et de la duplication 3x 2026-03-11 15:23:49 +01:00
8728594347 Page parcours : logos entreprises, badges de type colorés, durées calculées, support light/dark mode (FR/EN/AR) 2026-03-11 15:12:53 +01:00
9871f189e3 Hero /code : intro resserrée avec badges technos, suppression du texte dense et du CTA redondant 2026-03-11 08:32:58 +01:00
4e1bba4fb4 supprime pnpm-lock.yaml 2026-03-11 08:27:27 +01:00
194dec0fbe Fix header contrast on /code page in light theme — nav links, logo and hamburger icon now white on purple gradient background 2026-03-11 01:07:03 +01:00
c2530f9181 Traduction EN et AR de tous les changements design /code : hero, timeline, valeurs, icônes, rythme, title 2026-03-11 00:53:30 +01:00
8427fb066e Recommandations : taille de texte augmentée pour meilleure lisibilité 2026-03-11 00:35:25 +01:00
d5ca37cc45 Rythme global : fond subtil sur Parcours et Projets, espacement vertical accru entre sections 2026-03-11 00:28:58 +01:00
7b74131c00 Section En ligne : icônes des plateformes (LinkedIn, Malt, Stack Overflow, GitHub, Forgejo) 2026-03-11 00:17:37 +01:00
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