{
  "site": "nathanlefeuvre.com",
  "versions": [
    {
      "version": "3.5.0_37",
      "date": "2026-11-15T02:01:44+01:00",
      "changes": [
        "Contenu : billet Navier-Stokes, « Mon avis » avec une conclusion physique (FR, EN)"
      ]
    },
    {
      "version": "3.5.0_36",
      "date": "2026-11-15T01:43:48+01:00",
      "changes": [
        "Contenu : rubrique renommée « L'actu de mes passions » (menu « Passions », adresses inchangées) ; 3 billets réécrits plus courts et plus personnels ; mentions légales et modèle de billet mis à jour"
      ]
    },
    {
      "version": "3.5.0_35",
      "date": "2026-11-15T01:10:02+01:00",
      "changes": [
        "Rubrique Actualités : articles courts sur mes passions (science et technique, cinéma, sport), en français et en anglais, avec sources et mention de l'IA ; page par passion, flux RSS séparé (pas de LinkedIn), lien dans le menu et le pied de page",
        "Contenu : 3 premiers articles (Navier-Stokes, Moscas de Fernando Eimbcke, championnat du monde d'échecs) ; mentions légales sur l'usage de l'IA"
      ]
    },
    {
      "version": "3.4.0_34",
      "date": "2026-11-14T15:55:50+01:00",
      "changes": [
        "Commentaires : même confirmation que le formulaire de contact (page « Confirmez votre adresse e-mail » après l'envoi, validation en un clic, page « Commentaire envoyé » avec récapitulatif, e-mail aligné)",
        "Contenu : textes de confirmation des commentaires (FR, EN, ES) ; ES « me llegó correctamente » aussi pour le contact"
      ]
    },
    {
      "version": "3.3.0_33",
      "date": "2026-11-14T13:57:29+01:00",
      "changes": [
        "Migration vers OVH : nouveau domaine https://nathanlefeuvre.com/ (adresses canoniques, sitemap, flux RSS, données structurées, CV), redirection 301 des autres adresses (www, .fr, http, ancienne adresse altervista), PHP 8.3 (.ovhconfig), e-mails du site sur contact@nathanlefeuvre.com",
        "Formulaire de contact : objet choisi dans une liste (4 objets) et page « Confirmez votre adresse » après l'envoi",
        "Contenu : hébergeur OVHcloud dans le pied de page et les mentions légales (FR, EN, ES) ; libellés des objets et de la page « Confirmez votre adresse »"
      ]
    },
    {
      "version": "3.2.0_32",
      "date": "2026-11-14T12:17:48+01:00",
      "changes": [
        "Accueil complet : tous les paragraphes du Profil, Ce que je fais et 7 compétences en cartes à déplier, Parcours et Publications complets sur ordinateur (réduits sur téléphone), Galerie de retour sur l'accueil, carrousels centrés, bouton Contact en icône",
        "Références : liens « Site de … ↗ » ; données structurées complétées (STYREL, anciens employeurs et laboratoires)",
        "Contenu : traductions anglaises et espagnoles vérifiées et harmonisées, CV espagnol en espagnol du Mexique, CV et site mis en cohérence ; anciens textes de la frise de gestion de projet retirés"
      ]
    },
    {
      "version": "3.1.0_31",
      "date": "2026-11-14T01:25:24+01:00",
      "changes": [
        "Retour à la charte graphique 2.x (refonte 3.0.0 annulée à la demande de Nathan) ; accueil court, pages dédiées et CV conservés",
        "Contact en surimpression : bouton flottant sur l'accueil, fenêtre centrée sur ordinateur et panneau depuis le bas sur téléphone ; bouton placé au-dessus du bandeau de consentement, focus dans la fenêtre à l'arrivée par le menu Contact ; section dans la page sans JavaScript",
        "Contenu : libellé « Fermer » de la fenêtre de contact (FR, EN, ES)"
      ]
    },
    {
      "version": "3.0.0_30",
      "date": "2026-11-13T07:52:37+01:00",
      "changes": [
        "Refonte graphique 3.0.0 (piste A « Évolution ») : fonds, filets, tailles de titres, trait rouge sous les titres, cartes sans bordure avec ombre légère, en clair et en sombre",
        "CV PDF générés à la charte depuis content/cv (build.py cv), contenu des CV inchangé",
        "Contenu : textes des CV (FR, EN, ES), adresse « Île-de-France », 20 coquilles du CV français corrigées"
      ]
    },
    {
      "version": "2.12.0_29",
      "date": "2026-11-13T07:52:32+01:00",
      "changes": [
        "Accueil plus court sur téléphone : Profil, Ce que je fais et Compétences repliables, Parcours, Publications et Blog résumés, avec des pages dédiées (Parcours, Publications, Blog, Galerie) en FR, EN, ES",
        "Contenu : textes de l'accueil court et des pages dédiées, premier paragraphe du Profil revu"
      ]
    },
    {
      "version": "2.11.1_28",
      "date": "2026-11-10T22:17:06+01:00",
      "changes": [
        "Logos : un logo SVG, s'il est déposé, remplace le PNG (même taille), contrôle de sécurité V-17, type et cache SVG dans .htaccess ; logo Python officiel en SVG",
        "Contenu : logo Python en haute définition"
      ]
    },
    {
      "version": "2.11.0_27",
      "date": "2026-11-10T20:25:28+01:00",
      "changes": [
        "Diffusion LinkedIn et Instagram : flux RSS par langue, visuel Instagram 1080 × 1350 et image de partage LinkedIn pour chaque article, pages Liens pour la bio Instagram",
        "Contenu : textes du visuel Instagram et de la page Liens (FR, EN, ES)"
      ]
    },
    {
      "version": "2.10.1_26",
      "date": "2026-11-08T18:08:40+01:00",
      "changes": [
        "Contenu : CV français caviardé comme les CV anglais et espagnol (une barre noire par ligne, alignée sur les icônes)"
      ]
    },
    {
      "version": "2.10.1_25",
      "date": "2026-11-08T17:59:28+01:00",
      "changes": [
        "Contenu : nouveau CV anglais à jour, dates du parcours (STYREL depuis 2024, Safran Reosc 2018-2024, Newcastle 2010-2015) et équipe de 5 ingénieurs chez Safran Reosc"
      ]
    },
    {
      "version": "2.10.1_24",
      "date": "2026-11-08T17:28:35+01:00",
      "changes": [
        "Contenu : nouveau CV français, CV espagnol, téléphone et e-mail masqués dans les trois CV, adresse du site en https"
      ]
    },
    {
      "version": "2.10.1_23",
      "date": "2026-11-08T16:54:37+01:00",
      "changes": [
        "Blog : la note des articles s'affiche dès la première note, aussi sur leurs cartes (accueil et pages de hashtag)",
        "Contenu : textes de la note au singulier (« 1 note »)"
      ]
    },
    {
      "version": "2.10.0_22",
      "date": "2026-11-08T16:26:36+01:00",
      "changes": [
        "Blog : note des articles en étoiles de 1 à 5, anonyme et sans cookie, moyenne affichée à partir de 5 notes",
        "Contenu : mentions légales des commentaires et des notes des articles"
      ]
    },
    {
      "version": "2.9.0_21",
      "date": "2026-11-08T16:26:32+01:00",
      "changes": [
        "Blog : commentaires sous chaque article, publiés après confirmation de l'adresse de l'auteur puis relecture de Nathan, avec réponse de l'auteur du site"
      ]
    },
    {
      "version": "2.8.3_21",
      "date": "2026-11-07T12:15:22+01:00",
      "changes": [
        "Référencement : autres écritures du nom pour Google (« Lefeuvre Nathan », « N. Lefeuvre ») ; profil Google Scholar et badge Credly reliés à la personne",
        "Contenu : référencement sur le nom (descriptions des pages d'accueil, éditeur dans les mentions légales)"
      ]
    },
    {
      "version": "2.8.2_20",
      "date": "2026-11-06T19:42:10+01:00",
      "changes": [
        "Site en HTTPS : redirection permanente de http:// vers https://, toutes les adresses (Google, LinkedIn, sitemap) en https://",
        "Contenu : nouveau logo STYREL dans les Références"
      ]
    },
    {
      "version": "2.8.1_19",
      "date": "2026-11-01T19:58:29+01:00",
      "changes": [
        "Icône Message redessinée dans le style de l'icône CV ; boutons Message et CV en rouge et blanc dans les deux thèmes ; icônes de contact resserrées"
      ]
    },
    {
      "version": "2.8.0_19",
      "date": "2026-11-01T19:24:04+01:00",
      "changes": [
        "En-tête : logo du site devant le nom ; choix de la langue dans un menu déroulant, comme le bouton Aa ; pied de page : liens des pages Expertise en première ligne"
      ]
    },
    {
      "version": "2.7.0_19",
      "date": "2026-11-01T18:01:16+01:00",
      "changes": [
        "Articles du blog : titre de l'onglet et de Google propre à chaque article (champ titre_seo, 65 caractères au plus, FR, EN, ES)",
        "Icône du site pour Google : adresse stable (empreinte de l'icône), favicon déclaré en 16, 32 et 48 px, icône de 192 px déclarée"
      ]
    },
    {
      "version": "2.6.1_18",
      "date": "2026-11-01T17:10:41+01:00",
      "changes": [
        "Icône du site : les navigateurs chargent la nouvelle icône au lieu de celle gardée en cache"
      ]
    },
    {
      "version": "2.6.0_18",
      "date": "2026-11-01T16:53:55+01:00",
      "changes": [
        "Contenu : Profil réécrit autour du management ; dates des vidéos de la Galerie au jour près ; libellés du bouton pause du carrousel, des groupes de la Galerie et du bandeau de suggestion de langue (FR, EN, ES)",
        "Langue : au premier passage, un bandeau propose la version du site dans la langue du navigateur (français, espagnol, sinon anglais) ; l'anglais devient la version par défaut pour Google",
        "Galerie en cartes comme le Blog : titre, date, description, type et fiche technique, vidéo, hashtags, auteur",
        "Icônes LinkedIn et CV de la même taille partout",
        "Carrousel des Références : bouton pause entre les flèches (accessibilité)",
        "Contact : nouvelle icône Message (vers le formulaire) à gauche de LinkedIn ; icônes LinkedIn et CV redessinées",
        "Nouvelle icône du site : engrenage NL et signal d'acquisition"
      ]
    },
    {
      "version": "2.5.2_17",
      "date": "2026-11-01T12:02:27+01:00",
      "changes": [
        "Profil : rubrique « Contact » sous les langues, avec les icônes LinkedIn et CV centrées",
        "Nouvelle icône CV, de la même forme que le logo LinkedIn, dans le rouge de la charte",
        "Blog : la date suit le titre, et @NathanLefeuvre (LinkedIn) se place entre les hashtags et « Lire l'article »",
        "Galerie et pages hashtag : titre, type et date, description, fiche technique, hashtags, puis @NathanLefeuvre"
      ]
    },
    {
      "version": "2.5.1_17",
      "date": "2026-11-01T07:59:52+01:00",
      "changes": [
        "Contenu : nouvelle page Mentions légales et confidentialité (FR, EN, ES) ; relecture complète des textes (auteurs et titres des articles SPIE, graphies STYREL, WAGO et CODESYS, point décimal en espagnol, résumés d'articles raccourcis, cohérence du profil entre les langues)",
        ".htaccess du serveur (page 404, compression, cache, en-têtes de sécurité) fourni avec le site à chaque release",
        "Blog : @NathanLefeuvre (lien LinkedIn) sur chaque carte d'article, comme dans la Galerie ; lien « En discuter sur LinkedIn » retiré des articles",
        "Liens LinkedIn et CV en icônes seules dans la vignette du Profil, la section Contact et la page « Message envoyé »",
        "Page « Mentions légales et confidentialité », liée depuis le pied de page, le bandeau des cookies et le formulaire de contact",
        "Cookies : le choix est redemandé après 6 mois, comme le recommande la CNIL",
        "Accessibilité : bouton « Cookies » agrandi, blocs de code des articles accessibles au clavier",
        "Audit technique : couleurs fixes du bandeau, des vidéos et de l'impression passées en variables de la charte (affichage inchangé)"
      ]
    },
    {
      "version": "2.5.0_16",
      "date": "2026-10-31T22:27:09+01:00",
      "changes": [
        "Blog : l'article « Concevoir un banc de test » s'enrichit d'une revue (banc de test, banc d'essai, banc métrologique), d'un état de l'art, d'exemples d'environnements (NI, Dewesoft, WAGO, Gantner, LabVIEW, TestStand, VeriStand, Python) et d'un exemple de système de test de freinage aéronautique (FR, EN, ES)"
      ]
    },
    {
      "version": "2.5.0_15",
      "date": "2026-10-31T21:45:54+01:00",
      "changes": [
        "Nouvelles pages « Expertise » : Bancs de test, LabVIEW et National Instruments (FR, EN, ES), reliées depuis le pied de page, le Profil et les pages de hashtag"
      ]
    },
    {
      "version": "2.4.1_14",
      "date": "2026-10-31T21:25:56+01:00",
      "changes": [
        "Profil : certification Certified LabVIEW Developer (CLD) avec lien vers le badge, aussi déclarée dans les données structurées pour Google ; National Instruments et bancs métrologiques cités ; nouvelle description de page (FR, EN, ES)",
        "Pages de hashtag : vrai titre et description pour Google (par exemple « LabVIEW : articles et vidéos »)",
        "Blog : nouvel article « Concevoir un banc de test : mécanique, électronique et logiciel » (FR, EN, ES)",
        "Profil : boutons LinkedIn et CV dans la vignette",
        "Logo LinkedIn officiel devant chaque lien vers LinkedIn, et icône de CV en PDF devant chaque lien vers le CV",
        "Références : lien vers le site d'Auxitrol Weston"
      ]
    },
    {
      "version": "2.4.0_13",
      "date": "2026-10-31T15:01:38+01:00",
      "changes": [
        "Profil : présentation réécrite, plus courte, en quatre paragraphes (rôle, management, parcours, motivations) (FR, EN, ES)"
      ]
    },
    {
      "version": "2.4.0_12",
      "date": "2026-10-31T09:46:02+01:00",
      "changes": [
        "Profil : nouveau paragraphe sur mon rôle de manager d'une équipe d'ingénieurs et de techniciens (FR, EN, ES)",
        "Profil : hashtags rangés en 6 catégories à ouvrir d'un clic, y compris ceux du Blog et de la Galerie",
        "Téléphone : bandeau plus compact, avec le slogan sur deux lignes et les logos des outils",
        "Slogan aligné à droite et toujours sur deux lignes, dans les trois langues",
        "Confort de lecture : la police et la taille choisies ne changent plus l'en-tête, le bandeau ni le pied de page"
      ]
    },
    {
      "version": "2.3.3_11",
      "date": "2026-10-31T00:04:39+01:00",
      "changes": [
        "Photo du Profil servie à la taille affichée (version 240 px) : moins de données sur téléphone",
        "Rangement des hashtags recalculé après la mise en page du navigateur : plus aucun ajustement forcé de la mise en page",
        "Références : plus de fond blanc derrière les logos en thème sombre ; les logos à texte sombre y sont éclaircis",
        "Contact : pictogrammes LinkedIn et CV devant les boutons"
      ]
    },
    {
      "version": "2.3.2_11",
      "date": "2026-10-30T23:09:10+01:00",
      "changes": [
        "Chargement plus rapide sur téléphone : image du bandeau demandée en priorité, CSS et JavaScript minimisés, police des titres allégée de moitié, images d'attente des vidéos chargées à l'approche (Lighthouse mobile : performances 88 → 98, LCP 3,9 → 2,5 s)",
        "Points des carrousels : zone tactile agrandie à 24 × 24 px (accessibilité, WCAG 2.2)",
        "Images du site (bandeau, photo du Profil, cartes et figures du blog, logos, images d'attente des vidéos) servies en AVIF ou WebP, à la largeur adaptée à l'écran, avec le JPG ou le PNG en repli pour les anciens navigateurs : pages environ deux à trois fois plus légères en images",
        "Images : figures des articles du blog refaites en haute définition à partir des publications d'origine, logos Arduino, MATLAB, Auxitrol Weston, MBDA et Styrel plus nets."
      ]
    },
    {
      "version": "2.3.1_10",
      "date": "2026-10-28T07:31:19+01:00",
      "changes": [
        "Blog : nouvel article sur le bilan d'énergie turbulente dans le sillage lointain d'un cylindre carré (FSSIC3) ; tous les articles réécrits à la première personne, sans changement de fond."
      ]
    },
    {
      "version": "2.3.1_9",
      "date": "2026-10-27T23:04:56+01:00",
      "changes": [
        "Confort de lecture : la police choisie (Atkinson Hyperlegible ou OpenDyslexic) s'applique maintenant à tout le site, y compris l'en-tête, le bandeau, les titres, les dates, les hashtags et les liens",
        "Blog : nouvel article sur l'autosimilarité sur l'axe d'un jet rond (Journal of Fluid Mechanics, 2016) ; relecture de tous les articles, traductions alignées sur le français et format harmonisé."
      ]
    },
    {
      "version": "2.3.0_8",
      "date": "2026-10-27T00:23:05+01:00",
      "changes": [
        "Confort de lecture : bouton « Aa » à droite des langues pour choisir une police plus lisible (Atkinson Hyperlegible ou OpenDyslexic, avec plus d'espace entre lettres, mots et lignes) et la taille du texte (normale, grande, très grande) ; choix gardé sur l'appareil",
        "Blog : nouvel article sur le paramètre de dissipation Cε (Journal of Fluid Mechanics, 2017) ; lien vers le PDF de la publication dans « Pour aller plus loin », comme dans la section Publications."
      ]
    },
    {
      "version": "2.2.0_7",
      "date": "2026-10-26T20:32:46+01:00",
      "changes": [
        "Hashtags : chaque hashtag porté par un article ou une vidéo a sa page, qui réunit les articles du blog et les vidéos de la Galerie qui le portent (une page par langue)",
        "Hashtags : les hashtags qui ont une page sont des liens soulignés (Profil, Blog, Galerie, articles) ; les autres restent du texte non souligné",
        "Hashtags : en anglais et en minuscules, identiques en français, anglais et espagnol, au Profil, dans la Galerie et sur les articles ; les mots composés sont séparés en deux hashtags ; règles et lexique dans la documentation",
        "Référencement : pages de hashtag reliées entre les trois langues (hreflang) ; celles qui ont au moins 3 éléments sont indexées et dans le plan du site",
        "Vérifications : un hashtag doit être en minuscules sans accent ni barre oblique, écrit d'une seule façon et identique dans les trois langues"
      ]
    },
    {
      "version": "2.1.10_6",
      "date": "2026-10-25T22:51:26+01:00",
      "changes": [
        "Contact : l'e-mail reçu par Nathan après la validation de l'adresse de l'expéditeur est mis en forme aux couleurs du site, au format de l'accusé de réception (enveloppe, « Message reçu », récapitulatif)",
        "Contact : bouton « Répondre » dans cet e-mail, qui ouvre une réponse adressée à l'expéditeur avec l'objet « Re: … »",
        "Hashtags : dans le Profil, le Blog et la Galerie, les hashtags sont réordonnés à l'affichage pour tenir sur le moins de lignes possible, selon la largeur de l'écran"
      ]
    },
    {
      "version": "2.1.9_6",
      "date": "2026-10-25T22:12:08+01:00",
      "changes": [
        "Langues : le passage de FR à EN ou ES garde la position dans la page (accueil et articles)",
        "Statistiques : accepter ou refuser les cookies ne fait plus défiler la page jusqu'au pied de page",
        "Pied de page : deux lignes centrées, avec le lien vers @brain2paper (Copywriter, Storyteller, Content Creator) qui a accompagné la création du site ; version à droite, au style des liens du site"
      ]
    },
    {
      "version": "2.1.8_6",
      "date": "2026-10-25T21:57:06+01:00",
      "changes": [
        "Références : logos Auxitrol Weston, Fugro, LEGI et SNCF remplacés par des versions de meilleure qualité"
      ]
    },
    {
      "version": "2.1.8_5",
      "date": "2026-10-25T21:11:45+01:00",
      "changes": [
        "Statistiques : Google Analytics sur toutes les pages, chargé seulement après l'accord du visiteur",
        "Statistiques : bandeau Accepter / Refuser en bas de l'écran (FR, EN, ES), choix gardé dans le navigateur, lien « Cookies » en pied de page pour le modifier"
      ]
    },
    {
      "version": "2.1.7_5",
      "date": "2026-10-25T17:47:22+01:00",
      "changes": [
        "Blog : une image d'illustration sur la carte de chacun des sept billets (accueil FR, EN, ES), série harmonisée (1200 × 675 px, même fond, légende discrète)",
        "Blog : fin filet gris autour des images des cartes, pour détacher leur fond clair de la carte blanche",
        "Blog : espace insécable avant les deux-points dans les titres français des billets"
      ]
    },
    {
      "version": "2.1.6_4",
      "date": "2026-10-25T17:08:52+01:00",
      "changes": [
        "Blog : emplacement d'image dans les cartes de l'accueil (champ « image » de l'en-tête des articles), laissé vide quand l'article n'a pas d'image",
        "Blog : hashtags en bas des cartes ; dates, titres, résumés, images et hashtags alignés d'une carte à l'autre",
        "Blog : 6 hashtags au plus par billet, mêmes mots-clés dans les trois langues ; python build.py check signale les articles qui en ont plus"
      ]
    },
    {
      "version": "2.1.5_3",
      "date": "2026-10-25T16:54:00+01:00",
      "changes": [
        "Contact : accusé de réception au format de la page « Message envoyé » (pastille, récapitulatif avec pictogrammes, message complet, boutons de retour au site et LinkedIn), avec les mêmes textes (FR, EN, ES)",
        "Contact : sur téléphone, les étiquettes du récapitulatif de l'accusé de réception passent au-dessus des valeurs",
        "Contact : textes de confirmation en anglais et en espagnol à la première personne, comme le reste du site (page « Message envoyé », accusé de réception, messages du formulaire)"
      ]
    },
    {
      "version": "2.1.4_2",
      "date": "2026-10-25T16:43:13+01:00",
      "changes": [
        "Contact : e-mail de vérification aux couleurs du site, avec un bouton « Valider mon adresse e-mail » au lieu d'un simple lien (FR, EN, ES)",
        "Contact : accusé de réception aux couleurs du site, avec la copie du message dans un encadré",
        "Contact : chaque e-mail garde une version texte brut pour les messageries qui n'affichent pas le HTML"
      ]
    },
    {
      "version": "2.1.3_2",
      "date": "2026-10-25T15:49:59+01:00",
      "changes": [
        "Site : version initiale, en trois langues (français, anglais, espagnol), avec Profil, Parcours, Références, Publications, Blog (sept articles), Galerie et Contact (formulaire avec vérification de l'adresse et page « Message envoyé »)",
        "Versions : numérotation X.Y.y_Z (X.Y.y pour la technique, Z pour le contenu) qui repart de cette version ; historique antérieur archivé dans archives/versions-avant-2.1.3_2.json"
      ]
    }
  ]
}
