Skip to content

Commit 9253a99

Browse files
hrenaudclaudeLaurent Devernayflorinesueurldevernay
authored
Mise a jour du moteur de génération du site (#598)
* Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Remove empty .gitkeep files from English and Spanish content directories * Add RIA configuration to referentiel-config.ts * Fix typo in open source formatting in French content for WordPress comparison * Add lexique functionality with tooltip support and data fetching * add fake content * .gitkeep * Add English and Spanish versions of the "Accessibilité web" entry to the lexique * Add .gitkeep files to English and Spanish lexique directories * Edited with TinaCMS * Remove unused .gitignore copy file * feat: implement lexique tooltips feature toggle and update related components * feat: ajouter des fichiers de plan de migration et de résumé exécutif * feat: update MongoDB service configuration and improve health checks in docker-compose * feat: migre la recherche vers Pagefind et supprime next-plugin-preval - Remplace fuse.js et itemsjs par Pagefind (recherche statique) - Supprime next-plugin-preval et les fichiers .preval.ts - Simplifie next.config.js et le script build-local.sh - Ajoute generateStaticParams via lecture du filesystem - Ajoute les attributs data-pagefind-* pour l'indexation - Met à jour les dépendances (Next.js 14.2.35, TinaCMS 2.10.1) - Ajoute public/pagefind/ au .gitignore Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: ajoute qualité du code et nettoyage (Phase 3 & 4) Phase 3 - Qualité : - Ajoute validation des variables d'environnement avec Zod - Ajoute ErrorBoundary pour la gestion d'erreurs - Ajoute commande pnpm check-types - Nettoie les console.log de debug - Documente les @ts-ignore nécessaires Phase 4 - Nettoyage : - Corrige typo .local_mogodb → .local_mongodb - Met à jour CLAUDE.md avec commandes validation APEX - Ajoute tsconfig.tsbuildinfo au .gitignore Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: ajoute pagefind au script build pour Vercel Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: gère gracieusement le contenu optionnel manquant (lexique, personas) - Ajoute vérification d'existence des dossiers dans getStaticPathsFromFilesystem - Ajoute try/catch sur les requêtes TinaCMS pour lexique et personas - Retourne 404 quand le contenu n'existe pas ou feature désactivée - Désactive les tooltips lexique quand aucun contenu disponible - Ajoute traduction "Aucun contenu disponible." (fr, en, es) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: supprime les fichiers de plan de migration obsolètes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: ajoute le plan d'architecture Upstream Sync pour multi-sites - Nouveau plan PLAN_UPSTREAM_SYNC.md pour synchroniser le code entre repos existants - Clarifie que ce n'est pas un fork GitHub mais un remote upstream - Met à jour CLAUDE.md avec règle de commit explicite et contenu optionnel Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: ajoute un script de merge intelligent pour package.json * feat: configure le repo comme source upstream pour multi-sites - Ajoute .gitattributes pour protéger le contenu local lors des merges - Remplace le contenu RWP par du contenu fake minimal (3 fiches, 2 personas, 3 termes lexique) - Corrige generateStaticParams pour utiliser code_languages au lieu de Object.keys(ui) - Nettoie package.json (variables REF_NAME lues depuis .env) - Met à jour le README pour documenter l'architecture multi-sites - Ajoute PLAN_DYNAMIC_SCHEMA.md pour amélioration future des schémas Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: corrige la syntaxe des tooltips lexique dans les fiches fake Utilise \[\[slug|texte]] pour gérer les accents Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: réorganise les assets publics pour la sync upstream - Déplace les logos dans public/assets/ (partagés entre sites) - Crée public/img_fiches/ pour les images de contenu (protégé par .gitattributes) - Supprime les images obsolètes (gifs setup, svg Next/Vercel) - Met à jour les refs dans footer.tsx et i18n/ui.ts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(seo): ajoute les meta OpenGraph et Twitter à toutes les pages - Layout: OpenGraph et Twitter avec images SEO - Fiches liste et détail: titre dynamique avec refID - Lexique, Personas, Mentions légales: titres appropriés - Images de partage social configurées via i18n/ui.ts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(seo): ajoute metadataBase pour résoudre les URLs des images sociales - Ajoute metadataBase dans layout.tsx pour que Next.js résolve correctement les URLs relatives des images OpenGraph/Twitter en production - Documente SITE_URL et PUBLIC_BASE dans .env.example et docs/installation.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: met à jour CLAUDE.md avec la configuration multi-référentiel - Reformule Project Overview comme plateforme générique multi-référentiel - Documente les deux variables d'environnement (NEXT_PUBLIC_REF_NAME et TINA_PUBLIC_REF_NAME) - Ajoute les commandes manquantes (build-local, serve-local, docker:up/down, doc) - Met à jour la liste des référentiels avec RWEB comme défaut Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(lint): rend les schémas de validation MDX dynamiques selon le référentiel Le schéma utilisé pour valider le frontmatter des fiches dépend maintenant de NEXT_PUBLIC_REF_NAME. RWP utilise fiche.schema.rwp.yaml, les autres utilisent fiche.schema.yaml par défaut. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: configure Changesets pour la gestion des versions Permet de tracker la synchronisation entre gen-referentiel-core et les projets dérivés (RWP, RWEB, REIPRO, etc.) via les numéros de version. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore(release): v0.2.0 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: release * feat: add settings.json for attribution configuration and update .gitignore * feat: enhance upstream sync instructions with merge conflict strategies * docs: met à jour la documentation complète et ajoute guide de synchronisation - Ajoute docs/synchronisation.md avec workflow upstream complet - Corrige retype.yml (URL et repo pointant vers gen-referentiel-core) - Met à jour developpement.md : - Versions TinaCMS 2.10.1, Next.js 14.2.35, MongoDB 7.0.0 - Commande lint:md corrigée - Section Changesets ajoutée - Complète installation.md avec NEXT_PUBLIC_REF_NAME et détails MongoDB - Met à jour configuration.md avec REIPRO, RIA et REF_HOME - Finalise README.md avec stack technique complète * chore: release * docs: ajoute règle de workflow pour changeset et PR * feat(api): ajoute API REST avec documentation Swagger Implémente une API REST complète pour accéder aux fiches du référentiel : Endpoints : - GET /api/fiches : liste toutes les fiches (filtres lang/version) - GET /api/fiches/{id} : récupère une fiche par ID - GET /api/languages : liste des langues disponibles Fonctionnalités : - Génération des données JSON au build (scripts/generate-api-data.mjs) - API Routes Next.js avec rendu dynamique - Documentation OpenAPI 3.0 via next-swagger-doc - Interface Swagger UI accessible à /swagger-ui.html - Cache HTTP (1h) pour les réponses - Documentation complète dans docs/api.md et API.md Architecture : - Données générées depuis les fichiers MDX au build - Pas de dépendance MongoDB en runtime - Compatible avec l'architecture SSG existante - Filtrage automatique des fiches non publiées * chore: ajoute changeset pour l'API REST * chore: release * chore: supprime docs/.retype du suivi git et ajoute au gitignore * feat(api): ajoute lien API dans le footer et corrige typage SwaggerUI * feat(api): ajoute validation de la langue dans les routes API Valide le paramètre lang contre les locales configurées dans referentiel-config.ts et retourne 400 si non supportée. Simplifie /api/languages pour utiliser la config comme source de vérité. * fix(api): filtre les langues dans la génération API selon le référentiel Le script generate-api-data.mjs scannait tous les dossiers de langues sur le filesystem. Il filtre maintenant par les locales configurées dans NEXT_PUBLIC_REF_NAME (ex: RWP → fr uniquement). * feat(api): ajoute API versions et améliore génération des données - Itère sur les locales configurées au lieu de scanner le filesystem - Extrait les versions distinctes des fiches dans le JSON généré - Ajoute l'endpoint GET /api/versions avec documentation Swagger - Ajoute le changeset associé * refactor(api): simplifie la génération en déduisant langues et versions des fiches Supprime le mapping LOCALES_BY_REF dupliqué. Le script scanne tous les dossiers de langues et déduit languages/versions depuis les fiches publiées. La restriction par référentiel se fait au niveau des API routes. * chore: exclut public/api-data du suivi git Fichier généré au build, évite les conflits lors du merge upstream. * docs: met à jour la documentation API avec versions et erreurs 400 Ajoute l'endpoint /api/versions, documente les erreurs 400 pour langue non supportée, et corrige la réponse /api/languages (champ default). * docs: centralise la documentation dans docs/ et supprime les doublons Supprime API.md, PLAN_UPSTREAM_SYNC.md et PLAN_DYNAMIC_SCHEMA.md dont le contenu est déjà dans docs/. Corrige les liens cassés dans README.md et docs/synchronisation.md. * chore: ajoute changeset pour le nettoyage de la documentation * chore: release * docs: corrige le workflow de synchronisation upstream Le driver merge=ours de .gitattributes ne protège le contenu que lors de conflits. Remplace git merge direct par un workflow --no-commit avec reset/checkout/clean pour préserver le contenu local. * chore: ajoute changeset pour la correction du workflow de sync * chore: release * ci: écoute toutes les branches feat/* dans le build Vercel * fix(api): corrige l'URL du serveur Swagger sur Vercel L'URL du serveur dans la spec OpenAPI était hardcodée à localhost:3000. Utilise maintenant VERCEL_URL (auto-définie par Vercel) pour générer dynamiquement l'URL correcte en production. * chore: ajoute changeset pour la correction Swagger * chore: release * fix(api): génère la spec Swagger au build time La spec OpenAPI doit être générée au build time (niveau module) car les fichiers source .ts ne sont pas disponibles au runtime sur Vercel serverless. Seule l'URL du serveur est modifiée au runtime. * fix(api): génère la spec OpenAPI au build time via script Les fichiers source .ts ne sont pas disponibles au runtime sur Vercel. Solution: générer la spec OpenAPI statiquement au build time avec un script dédié qui scanne les annotations @Swagger. - Ajoute scripts/generate-openapi-spec.mjs - Modifie route.ts pour charger le fichier JSON statique - Ajoute le script au build et build-local * fix(api): utilise VERCEL_BRANCH_URL et VERCEL_PROJECT_PRODUCTION_URL - Utilise VERCEL_PROJECT_PRODUCTION_URL sur la branche main - Utilise VERCEL_BRANCH_URL sur les autres branches * fix(auth): corrige l'authentification TinaCMS sur Vercel Met à jour tinacms-authjs de 5.0.9 vers 8.0.2 pour corriger les erreurs 500/405 sur les routes /api/tina/auth/* lors de l'authentification. * chore: release * fix(deps): force nanoid v3 pour compatibilité CommonJS Résout l'erreur ESM sur Vercel : @udecode/plate-core nécessite nanoid en CommonJS mais nanoid v5+ est ESM-only. * fix(deps): force react-dnd-html5-backend v15 pour compatibilité CommonJS Ajoute un override pnpm pour forcer react-dnd-html5-backend@^15.1.3 car la v16 est ESM-only et @udecode/plate-dnd utilise require() * chore: ajoute changeset pour fix react-dnd * fix(deps): régénère lockfile avec overrides appliqués * fix(deps): ajoute override react-dnd v15 pour compatibilité CommonJS Ajoute react-dnd@^15.1.2 aux overrides pnpm car la v16 est ESM-only et @udecode/plate-dnd utilise require() * fix(build): utilise transpilePackages pour résoudre les problèmes ESM Ajoute transpilePackages dans next.config.js pour forcer Next.js à transpiler les packages react-dnd et @udecode/plate-dnd qui sont ESM-only. Retire les overrides pnpm pour react-dnd (plus nécessaires). * chore: ajoute changeset pour fix ESM * chore: release * fix(deps): rétablit overrides react-dnd pour les API routes Vercel transpilePackages ne s'applique qu'au build Next.js, pas aux Vercel Functions. Les overrides pnpm sont nécessaires pour le runtime. * chore: ajoute changeset * chore: release * fix(deps): ajoute react-dnd v16 en dépendance directe Suivant l'exemple de tina-self-hosted-demo, ajoute react-dnd et react-dnd-html5-backend v16 comme dépendances directes au lieu d'utiliser des overrides. Combiné avec transpilePackages. * chore: ajoute changeset * chore: release * fix(deps): aligne configuration sur tina-self-hosted-demo - Downgrade tinacms-authjs de 8.0.2 à 5.0.9 - Retire transpilePackages (non utilisé dans le demo officiel) - Garde react-dnd v16 en dépendance directe * chore: ajoute changeset * chore: release * fix(deps): force react-dnd v14 pour compatibilité CommonJS Corrige l'erreur ERR_REQUIRE_ESM sur Vercel causée par @udecode/plate-dnd qui utilise require() pour importer react-dnd v16 (ESM-only). react-dnd v14.x est en CommonJS et compatible avec plate-dnd (>=14.0.0). Ref: tinacms/tina-self-hosted-demo#131 Ref: udecode/plate#1609 * chore: régénère pnpm-lock.yaml avec react-dnd v14 * chore: ajoute changeset pour fix react-dnd * docs: documente le fix ERR_REQUIRE_ESM react-dnd * chore: release * feat(tina): protège les branches main/master contre l'édition directe - Ajoute ProtectedGitHubProvider pour bloquer les écritures sur main/master - Ajoute warnOnMainMasterBranch pour afficher un warning dans l'interface - Intègre le warning dans toutes les collections TinaCMS - Documente le workflow de contribution et la protection des branches * chore: ajoute changeset pour protection branches main/master * chore: met à jour tina-lock.json * chore: ignore tina-lock.json (spécifique à chaque référentiel) * chore: release * revert: remet tina-lock.json dans git (nécessaire au build) * docs: ajoute instruction pour régénérer tina-lock.json après merge upstream * fix(docs): corrige commande pour régénérer tina-lock.json * feat: ajoute script sync-upstream.sh pour automatiser la synchronisation * feat: améliore sync-upstream.sh pour gérer première sync et suivantes * feat: ajoute commande pnpm sync-upstream * chore: ajoute changeset pour sync-upstream * chore: release * chore: retire .local_mongodb/.env du suivi Git * fix: corrige conflits docker-compose multi-instances et simplifie sync upstream - Retire les container_name en dur pour éviter les conflits entre instances - Ajoute .env.example pour documenter la config Docker - Unifie la commande merge avec --allow-unrelated-histories -X theirs * fix: correct duplicate condition in build script for Vercel * fix: protège README.md lors de la synchronisation upstream * fix: update version to 0.6.1 and document README.md protection during upstream sync * Feat/upstream (#597) * fix typo detected by Christian Martin * Update WP_3.02-preferer-la-pagination-au-defilement-infini.md Change `NEANT` to `6` * Modification du lexique * Suppression doublon * Correction des personas * Correction des fiches * Prise en compte des retours * Change medias folder name (same as fiche) * update media link * update media link after rename * fix wrong link * add terminaux to lexique * fix orthographe * fix link * Update fiches/WP_3.06-ne-pas-afficher-les-documents-l_interieur-des-pages.md Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * Update lexique/vectoriel.md Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * Définition écoconception * Mesure de l'impact environnemental * Initialisation de la fiche * Update fiche 3.10 * typo fix * fix urls * Change title Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * Simplifier le texte Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * typofix Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * typofix Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * Typofix Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * Lexique & typofix Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * Typofix Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> * RM DA commenaire * feat: init next+tinaCMS * chore: update to trigger build * chore: mise à jour des références dans package.json pour RWP * fix: correction de la valeur du mot de passe dans index.json * style: amélioration des styles de liste dans globals.css * style: réorganisation des styles de liste dans globals.css pour une meilleure structure * style: refactorisation des styles de liste dans globals.css pour une meilleure lisibilité et structure * style: amélioration et ajout de styles pour les listes dans globals.css * chore: ajout de la configuration ESLint pour les fichiers Markdown et mise à jour des scripts de lint dans package.json * feat: mise à jour de la gestion des scopes dans FicheCard et FichesTableView pour supporter plusieurs valeurs, ajout de la propriété 'list' dans la définition du champ 'scope' * feat: mise à jour des fichiers de fiches pour supporter plusieurs valeurs dans le champ 'scope' * feat: ajout de la gestion des filtres dans les composants FicheCard et FichesCardFilter, intégration du champ 'tiers' et mise à jour des options de configuration * fix: ajout d'une vérification pour gérer les valeurs null ou undefined dans la fonction slugify * Ajout de la gestion des fonctionnalités 'lifecycle', 'saved_resources', 'moe', 'priority_implementation' et 'environmental_impact' dans les composants FicheCard et FichesCardFilter. Mise à jour de la configuration des références pour inclure les options correspondantes. Amélioration de l'affichage des métadonnées et des filtres dans l'interface utilisateur. * Correction des attributs SVG dans le composant FicheCard : remplacement de 'stroke-width', 'stroke-linecap' et 'stroke-linejoin' par leur équivalent camelCase 'strokeWidth', 'strokeLinecap' et 'strokeLinejoin'. * fix: ajout d'un tri numérique dans la fonction getDatas pour gérer correctement les valeurs numériques dans le composant FicheFilter * feat: Mises à jour + Suppression informations obsolètes proposé par Dareth NHANG * feat: ajout de la documentation et des workflows pour la publication du site sur GitHub Pages * feat: ajout d'un fichier de licence Creative Commons pour encadrer l'utilisation des œuvres * feat: ajout d'un fichier de configuration pour améliorer la gestion des métadonnées et des options de publication * feat: ajout d'un script pour gérer le processus de construction en fonction de la branche sur Vercel * feat: ajout d'un nouveau script pour gérer le processus de construction en fonction de la branche sur Vercel, remplaçant l'ancien script supprimé * fix: mise à jour du chemin d'accès dans le workflow retype-action pour utiliser le répertoire racine au lieu de 'src' * refactor: suppression du script de construction obsolète dans le workflow retype-action et ajout de l'inclusion du fichier script.sh dans la configuration de retype * chore: ajout de la dépendance mongodb en tant que dépendance et peerDependency dans package.json et mise à jour de pnpm-lock.yaml pour fix une erroeur dans les logs * feat: mise à jour des locales pour la configuration i18n en limitant les langues à 'fr' uniquement pour le cas 'RWP' * feat: ajout de la configuration Remark pour la validation des fichiers Markdown et ajout de nouveaux schémas YAML pour la gestion des contenus * feat: ajout d'un champ 'responsable' pour définir le responsable du contenu dans le fichier RWP_1.TBD-services-tiers-en-general.mdx * chore: suppression du fichier home.md obsolète et de son contenu associé * chore: mise à jour du fichier tina-lock.json pour refléter les modifications de configuration et assurer la cohérence des dépendances * feat: ajout de la documentation sur le développement, l'installation et la configuration de la stack, incluant des détails sur TinaCMS, Next.js, Vercel et MongoDB Atlas * chore: mise à jour du fichier tina-lock.json pour assurer la cohérence des configurations et des dépendances * feat: ajout de 'refID' comme clé de recherche dans le composant InputSearch et affichage conditionnel de l'ID de référence dans les résultats * feat: ajout de Fuse.js comme dépendance et clarification du problème de build lié à next-plugin-preval * Edited with TinaCMS * feat: ajout des règles de commit selon les conventions Conventional Commits en français * feat: ajout d'un plugin pour valider les références aux personas dans les fiches et mise à jour des scripts de build local * feat: mise à jour de la documentation * feat: ajout de nouveaux profils de personas en anglais, espagnol et français, incluant des contributeurs, développeurs, designers, et spécialistes SEO * chore: suppression des fichiers .gitkeep pour les personas en anglais, espagnol et français * chore: suppression du fichier .gitkeep pour les fiches en français * feat: ajout du champ 'rgesn' dans le schéma de fiche pour étendre les validations * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * fix: update build-local script to use environment variable defaults for local builds * feat: add REIPRO configuration with localization, versioning, and feature flags * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Edited with TinaCMS * Remove empty .gitkeep files from English and Spanish content directories * Add RIA configuration to referentiel-config.ts * Fix typo in open source formatting in French content for WordPress comparison * Add lexique functionality with tooltip support and data fetching * add fake content * .gitkeep * Add English and Spanish versions of the "Accessibilité web" entry to the lexique * Add .gitkeep files to English and Spanish lexique directories * Edited with TinaCMS * Remove unused .gitignore copy file * feat: implement lexique tooltips feature toggle and update related components * feat: ajouter des fichiers de plan de migration et de résumé exécutif * feat: update MongoDB service configuration and improve health checks in docker-compose * feat: migre la recherche vers Pagefind et supprime next-plugin-preval - Remplace fuse.js et itemsjs par Pagefind (recherche statique) - Supprime next-plugin-preval et les fichiers .preval.ts - Simplifie next.config.js et le script build-local.sh - Ajoute generateStaticParams via lecture du filesystem - Ajoute les attributs data-pagefind-* pour l'indexation - Met à jour les dépendances (Next.js 14.2.35, TinaCMS 2.10.1) - Ajoute public/pagefind/ au .gitignore Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: ajoute qualité du code et nettoyage (Phase 3 & 4) Phase 3 - Qualité : - Ajoute validation des variables d'environnement avec Zod - Ajoute ErrorBoundary pour la gestion d'erreurs - Ajoute commande pnpm check-types - Nettoie les console.log de debug - Documente les @ts-ignore nécessaires Phase 4 - Nettoyage : - Corrige typo .local_mogodb → .local_mongodb - Met à jour CLAUDE.md avec commandes validation APEX - Ajoute tsconfig.tsbuildinfo au .gitignore Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: ajoute pagefind au script build pour Vercel Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: gère gracieusement le contenu optionnel manquant (lexique, personas) - Ajoute vérification d'existence des dossiers dans getStaticPathsFromFilesystem - Ajoute try/catch sur les requêtes TinaCMS pour lexique et personas - Retourne 404 quand le contenu n'existe pas ou feature désactivée - Désactive les tooltips lexique quand aucun contenu disponible - Ajoute traduction "Aucun contenu disponible." (fr, en, es) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: supprime les fichiers de plan de migration obsolètes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: ajoute le plan d'architecture Upstream Sync pour multi-sites - Nouveau plan PLAN_UPSTREAM_SYNC.md pour synchroniser le code entre repos existants - Clarifie que ce n'est pas un fork GitHub mais un remote upstream - Met à jour CLAUDE.md avec règle de commit explicite et contenu optionnel Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: ajoute un script de merge intelligent pour package.json * feat: configure le repo comme source upstream pour multi-sites - Ajoute .gitattributes pour protéger le contenu local lors des merges - Remplace le contenu RWP par du contenu fake minimal (3 fiches, 2 personas, 3 termes lexique) - Corrige generateStaticParams pour utiliser code_languages au lieu de Object.keys(ui) - Nettoie package.json (variables REF_NAME lues depuis .env) - Met à jour le README pour documenter l'architecture multi-sites - Ajoute PLAN_DYNAMIC_SCHEMA.md pour amélioration future des schémas Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: corrige la syntaxe des tooltips lexique dans les fiches fake Utilise \[\[slug|texte]] pour gérer les accents Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: réorganise les assets publics pour la sync upstream - Déplace les logos dans public/assets/ (partagés entre sites) - Crée public/img_fiches/ pour les images de contenu (protégé par .gitattributes) - Supprime les images obsolètes (gifs setup, svg Next/Vercel) - Met à jour les refs dans footer.tsx et i18n/ui.ts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(seo): ajoute les meta OpenGraph et Twitter à toutes les pages - Layout: OpenGraph et Twitter avec images SEO - Fiches liste et détail: titre dynamique avec refID - Lexique, Personas, Mentions légales: titres appropriés - Images de partage social configurées via i18n/ui.ts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(seo): ajoute metadataBase pour résoudre les URLs des images sociales - Ajoute metadataBase dans layout.tsx pour que Next.js résolve correctement les URLs relatives des images OpenGraph/Twitter en production - Documente SITE_URL et PUBLIC_BASE dans .env.example et docs/installation.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: met à jour CLAUDE.md avec la configuration multi-référentiel - Reformule Project Overview comme plateforme générique multi-référentiel - Documente les deux variables d'environnement (NEXT_PUBLIC_REF_NAME et TINA_PUBLIC_REF_NAME) - Ajoute les commandes manquantes (build-local, serve-local, docker:up/down, doc) - Met à jour la liste des référentiels avec RWEB comme défaut Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(lint): rend les schémas de validation MDX dynamiques selon le référentiel Le schéma utilisé pour valider le frontmatter des fiches dépend maintenant de NEXT_PUBLIC_REF_NAME. RWP utilise fiche.schema.rwp.yaml, les autres utilisent fiche.schema.yaml par défaut. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: configure Changesets pour la gestion des versions Permet de tracker la synchronisation entre gen-referentiel-core et les projets dérivés (RWP, RWEB, REIPRO, etc.) via les numéros de version. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore(release): v0.2.0 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: release * feat: add settings.json for attribution configuration and update .gitignore * feat: enhance upstream sync instructions with merge conflict strategies * docs: met à jour la documentation complète et ajoute guide de synchronisation - Ajoute docs/synchronisation.md avec workflow upstream complet - Corrige retype.yml (URL et repo pointant vers gen-referentiel-core) - Met à jour developpement.md : - Versions TinaCMS 2.10.1, Next.js 14.2.35, MongoDB 7.0.0 - Commande lint:md corrigée - Section Changesets ajoutée - Complète installation.md avec NEXT_PUBLIC_REF_NAME et détails MongoDB - Met à jour configuration.md avec REIPRO, RIA et REF_HOME - Finalise README.md avec stack technique complète * chore: release * docs: ajoute règle de workflow pour changeset et PR * feat(api): ajoute API REST avec documentation Swagger Implémente une API REST complète pour accéder aux fiches du référentiel : Endpoints : - GET /api/fiches : liste toutes les fiches (filtres lang/version) - GET /api/fiches/{id} : récupère une fiche par ID - GET /api/languages : liste des langues disponibles Fonctionnalités : - Génération des données JSON au build (scripts/generate-api-data.mjs) - API Routes Next.js avec rendu dynamique - Documentation OpenAPI 3.0 via next-swagger-doc - Interface Swagger UI accessible à /swagger-ui.html - Cache HTTP (1h) pour les réponses - Documentation complète dans docs/api.md et API.md Architecture : - Données générées depuis les fichiers MDX au build - Pas de dépendance MongoDB en runtime - Compatible avec l'architecture SSG existante - Filtrage automatique des fiches non publiées * chore: ajoute changeset pour l'API REST * chore: release * chore: supprime docs/.retype du suivi git et ajoute au gitignore * feat(api): ajoute lien API dans le footer et corrige typage SwaggerUI * feat(api): ajoute validation de la langue dans les routes API Valide le paramètre lang contre les locales configurées dans referentiel-config.ts et retourne 400 si non supportée. Simplifie /api/languages pour utiliser la config comme source de vérité. * fix(api): filtre les langues dans la génération API selon le référentiel Le script generate-api-data.mjs scannait tous les dossiers de langues sur le filesystem. Il filtre maintenant par les locales configurées dans NEXT_PUBLIC_REF_NAME (ex: RWP → fr uniquement). * feat(api): ajoute API versions et améliore génération des données - Itère sur les locales configurées au lieu de scanner le filesystem - Extrait les versions distinctes des fiches dans le JSON généré - Ajoute l'endpoint GET /api/versions avec documentation Swagger - Ajoute le changeset associé * refactor(api): simplifie la génération en déduisant langues et versions des fiches Supprime le mapping LOCALES_BY_REF dupliqué. Le script scanne tous les dossiers de langues et déduit languages/versions depuis les fiches publiées. La restriction par référentiel se fait au niveau des API routes. * chore: exclut public/api-data du suivi git Fichier généré au build, évite les conflits lors du merge upstream. * docs: met à jour la documentation API avec versions et erreurs 400 Ajoute l'endpoint /api/versions, documente les erreurs 400 pour langue non supportée, et corrige la réponse /api/languages (champ default). * docs: centralise la documentation dans docs/ et supprime les doublons Supprime API.md, PLAN_UPSTREAM_SYNC.md et PLAN_DYNAMIC_SCHEMA.md dont le contenu est déjà dans docs/. Corrige les liens cassés dans README.md et docs/synchronisation.md. * chore: ajoute changeset pour le nettoyage de la documentation * chore: release * docs: corrige le workflow de synchronisation upstream Le driver merge=ours de .gitattributes ne protège le contenu que lors de conflits. Remplace git merge direct par un workflow --no-commit avec reset/checkout/clean pour préserver le contenu local. * chore: ajoute changeset pour la correction du workflow de sync * chore: release * ci: écoute toutes les branches feat/* dans le build Vercel * fix(api): corrige l'URL du serveur Swagger sur Vercel L'URL du serveur dans la spec OpenAPI était hardcodée à localhost:3000. Utilise maintenant VERCEL_URL (auto-définie par Vercel) pour générer dynamiquement l'URL correcte en production. * chore: ajoute changeset pour la correction Swagger * chore: release * fix(api): génère la spec Swagger au build time La spec OpenAPI doit être générée au build time (niveau module) car les fichiers source .ts ne sont pas disponibles au runtime sur Vercel serverless. Seule l'URL du serveur est modifiée au runtime. * fix(api): génère la spec OpenAPI au build time via script Les fichiers source .ts ne sont pas disponibles au runtime sur Vercel. Solution: générer la spec OpenAPI statiquement au build time avec un script dédié qui scanne les annotations @Swagger. - Ajoute scripts/generate-openapi-spec.mjs - Modifie route.ts pour charger le fichier JSON statique - Ajoute le script au build et build-local * fix(api): utilise VERCEL_BRANCH_URL et VERCEL_PROJECT_PRODUCTION_URL - Utilise VERCEL_PROJECT_PRODUCTION_URL sur la branche main - Utilise VERCEL_BRANCH_URL sur les autres branches * fix(auth): corrige l'authentification TinaCMS sur Vercel Met à jour tinacms-authjs de 5.0.9 vers 8.0.2 pour corriger les erreurs 500/405 sur les routes /api/tina/auth/* lors de l'authentification. * chore: release * fix(deps): force nanoid v3 pour compatibilité CommonJS Résout l'erreur ESM sur Vercel : @udecode/plate-core nécessite nanoid en CommonJS mais nanoid v5+ est ESM-only. * fix(deps): force react-dnd-html5-backend v15 pour compatibilité CommonJS Ajoute un override pnpm pour forcer react-dnd-html5-backend@^15.1.3 car la v16 est ESM-only et @udecode/plate-dnd utilise require() * chore: ajoute changeset pour fix react-dnd * fix(deps): régénère lockfile avec overrides appliqués * fix(deps): ajoute override react-dnd v15 pour compatibilité CommonJS Ajoute react-dnd@^15.1.2 aux overrides pnpm car la v16 est ESM-only et @udecode/plate-dnd utilise require() * fix(build): utilise transpilePackages pour résoudre les problèmes ESM Ajoute transpilePackages dans next.config.js pour forcer Next.js à transpiler les packages react-dnd et @udecode/plate-dnd qui sont ESM-only. Retire les overrides pnpm pour react-dnd (plus nécessaires). * chore: ajoute changeset pour fix ESM * chore: release * fix(deps): rétablit overrides react-dnd pour les API routes Vercel transpilePackages ne s'applique qu'au build Next.js, pas aux Vercel Functions. Les overrides pnpm sont nécessaires pour le runtime. * chore: ajoute changeset * chore: release * fix(deps): ajoute react-dnd v16 en dépendance directe Suivant l'exemple de tina-self-hosted-demo, ajoute react-dnd et react-dnd-html5-backend v16 comme dépendances directes au lieu d'utiliser des overrides. Combiné avec transpilePackages. * chore: ajoute changeset * chore: release * fix(deps): aligne configuration sur tina-self-hosted-demo - Downgrade tinacms-authjs de 8.0.2 à 5.0.9 - Retire transpilePackages (non utilisé dans le demo officiel) - Garde react-dnd v16 en dépendance directe * chore: ajoute changeset * chore: release * fix(deps): force react-dnd v14 pour compatibilité CommonJS Corrige l'erreur ERR_REQUIRE_ESM sur Vercel causée par @udecode/plate-dnd qui utilise require() pour importer react-dnd v16 (ESM-only). react-dnd v14.x est en CommonJS et compatible avec plate-dnd (>=14.0.0). Ref: tinacms/tina-self-hosted-demo#131 Ref: udecode/plate#1609 * chore: régénère pnpm-lock.yaml avec react-dnd v14 * chore: ajoute changeset pour fix react-dnd * docs: documente le fix ERR_REQUIRE_ESM react-dnd * chore: release * feat(tina): protège les branches main/master contre l'édition directe - Ajoute ProtectedGitHubProvider pour bloquer les écritures sur main/master - Ajoute warnOnMainMasterBranch pour afficher un warning dans l'interface - Intègre le warning dans toutes les collections TinaCMS - Documente le workflow de contribution et la protection des branches * chore: ajoute changeset pour protection branches main/master * chore: met à jour tina-lock.json * chore: ignore tina-lock.json (spécifique à chaque référentiel) * chore: release * revert: remet tina-lock.json dans git (nécessaire au build) * docs: ajoute instruction pour régénérer tina-lock.json après merge upstream * fix(docs): corrige commande pour régénérer tina-lock.json * feat: ajoute script sync-upstream.sh pour automatiser la synchronisation * feat: améliore sync-upstream.sh pour gérer première sync et suivantes * feat: ajoute commande pnpm sync-upstream * chore: ajoute changeset pour sync-upstream * chore: release * chore: retire .local_mongodb/.env du suivi Git * fix: corrige conflits docker-compose multi-instances et simplifie sync upstream - Retire les container_name en dur pour éviter les conflits entre instances - Ajoute .env.example pour documenter la config Docker - Unifie la commande merge avec --allow-unrelated-histories -X theirs * fix: correct duplicate condition in build script for Vercel * fix: protège README.md lors de la synchronisation upstream * fix: update version to 0.6.1 and document README.md protection during upstream sync * chore: configure upstream sync --------- Co-authored-by: Laurent Devernay <ldevernay@greenspector.com> Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> Co-authored-by: LaurentDev <boblehamster@yahoo.fr> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * fix(fiche): corrige le placement du commentaire @ts-ignore dans TableView * chore: publie la version 0.6.2 * chore: applique les changements post-merge upstream - Supprime les fichiers .preval.ts (migration vers Pagefind) - Supprime input-search et checkbox-group (remplacés par pagefind-search) - Met à jour .eslintrc avec plugin:mdx/recommended - Met à jour tina-lock.json * chore: update from datas * chore: synchronise le contenu et les fichiers depuis la branche cms - Remplace src/content/ par la version cms (IDs quotés, dates à jour) - Met à jour les README (fr/en/es) avec le contenu projet spécifique - Supprime les fichiers .cursor/ non pertinents --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Laurent Devernay <ldevernay@greenspector.com> Co-authored-by: Florine Sueur <florine.sueur@outlook.fr> Co-authored-by: LaurentDev <boblehamster@yahoo.fr>
1 parent cb05826 commit 9253a99

367 files changed

Lines changed: 10814 additions & 7139 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Changesets
2+
3+
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4+
with multi-package repos, or single-package repos to help you version and publish your code. You can
5+
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6+
7+
We have a quick list of common questions to get you started engaging with this project in
8+
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

.changeset/config.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json",
3+
"changelog": "@changesets/cli/changelog",
4+
"commit": false,
5+
"fixed": [],
6+
"linked": [],
7+
"access": "restricted",
8+
"baseBranch": "main",
9+
"updateInternalDependencies": "patch",
10+
"ignore": [],
11+
"___privatePackage_comment": "Ce projet est privé, les versions servent uniquement à tracker la synchronisation entre instances"
12+
}

.claude/settings.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"attribution": {
3+
"commit": "",
4+
"pr": ""
5+
}
6+
}

.env.example

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@ GITHUB_PERSONAL_ACCESS_TOKEN=
1818
# Required when building locally
1919
GITHUB_OWNER=
2020
GITHUB_REPO=
21-
GITHUB_BRANCH=
21+
GITHUB_BRANCH=
22+
23+
# SEO - URL du site (obligatoire en production pour les images OpenGraph/Twitter)
24+
SITE_URL=https://example.com
25+
# Optionnel - base path si le site est hébergé sur un sous-répertoire
26+
PUBLIC_BASE=

.gitattributes

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Protéger le contenu spécifique au site lors des merges upstream
2+
src/content/** merge=ours
3+
public/img_fiches/** merge=ours
4+
5+
# Protéger les fichiers TinaCMS générés (dépendent de TINA_PUBLIC_REF_NAME)
6+
tina/tina-lock.json merge=ours
7+
tina/__generated__/** merge=ours
8+
9+
# Merge intelligent pour package.json (garde name/description local, prend dependencies upstream)
10+
package.json merge=package-json-merge
11+
12+
# Protéger la documentation spécifique au site
13+
README.md merge=ours
14+
README.*.md merge=ours

.gitconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[merge "ours"]
2+
driver = true
3+
4+
[merge "package-json-merge"]
5+
name = Merge intelligent package.json
6+
driver = scripts/merge-package-json.sh %O %A %B
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Publish Retype powered website to GitHub Pages
2+
on:
3+
workflow_dispatch:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
publish:
10+
name: Publish to retype branch
11+
12+
runs-on: ubuntu-latest
13+
14+
permissions:
15+
contents: write
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- uses: actions/setup-dotnet@v1
21+
with:
22+
dotnet-version: 7.0.x
23+
24+
- uses: retypeapp/action-build@latest
25+
with:
26+
config_path: ./docs/retype.yml
27+
28+
- uses: retypeapp/action-github-pages@latest
29+
with:
30+
update-branch: true

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,29 @@
1111
/.next/
1212
/out/
1313

14+
# pagefind (generated at build time)
15+
/public/pagefind/
16+
17+
# api data (generated at build time)
18+
/public/api-data/
19+
1420
# production
1521
/build
1622

23+
# retype (generated documentation build)
24+
docs/.retype/
25+
1726
# misc
1827
.DS_Store
1928
.env
2029
.env.local
2130
.idea
2231

32+
# claude code
33+
.claude/settings.local.json
34+
2335
# debug
2436
npm-debug.log*
2537
yarn-debug.log*
2638
yarn-error.log*
39+
tsconfig.tsbuildinfo

.local_mogodb/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

.local_mogodb/docker-compose.yml

Lines changed: 0 additions & 48 deletions
This file was deleted.

0 commit comments

Comments
 (0)