Files
fvtt-mournblade-cyd-2-0/CORRECTIONS.md
T
uberwald d0423b2017 Fix: Add missing Handlebars partials to preload function
- Added partial-active-effects.hbs and partial-item-effects.hbs to preloadHandlebarsTemplates()
- These partials were used in sheets but not preloaded, causing render errors
- Fixed lang/fr.json formatting (added closing brace and newline)
- Added test script to validate template loading
- Added CORRECTIONS.md documentation

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-07 00:26:07 +02:00

7.0 KiB

Corrections apportées au module Mournblade CYD 2.0

Date : 2026-06-07

Problèmes identifiés et corrigés

1. Erreur de chargement des partials Handlebars

Problème : Les feuilles de personnage et de créature généraient une erreur lors du rendu :

Failed to render template part "sheet":
The partial systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs could not be found

Cause : La fonction preloadHandlebarsTemplates() dans modules/mournblade-cyd2-utility.js ne préchargeait pas tous les partials nécessaires. Seuls 7 templates étaient préchargés sur 9 utilisés.

Partials manquants :

  • partial-active-effects.hbs - Utilisé dans les feuilles actor-sheet.hbs et creature-sheet.hbs
  • partial-item-effects.hbs - Utilisé dans de nombreux templates d'items

Solution : Ajout des deux partials manquants à la liste des templates préchargés dans la fonction preloadHandlebarsTemplates().

Fichier modifié :

  • modules/mournblade-cyd2-utility.js (lignes 189-201)

Code avant :

const templatePaths = [
  'systems/fvtt-mournblade-cyd-2-0/templates/editor-notes-gm.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-header.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-description.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-nav.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-prix.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-automation.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/hud-adversites.hbs',
]

Code après :

const templatePaths = [
  'systems/fvtt-mournblade-cyd-2-0/templates/editor-notes-gm.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-header.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-description.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-nav.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-prix.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-automation.hbs',
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs',  // ✅ Ajouté
  'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs',    // ✅ Ajouté
  'systems/fvtt-mournblade-cyd-2-0/templates/hud-adversites.hbs',
]

2. Erreur de parsing JSON (historique)

Problème mentionné :

SyntaxError: Expected ',' or '}' after property value in JSON at position 3753 (line 118 column 4)

Statut : Cette erreur concernait probablement une ancienne version du fichier lang/fr.json. Le fichier actuel est valide et ne contient pas d'erreur de syntaxe.

Vérification :

# Le fichier passe la validation JSON
node -e "require('./lang/fr.json')"  # ✅ Pas d'erreur

Liste complète des partials Handlebars

Partials utilisés dans le système :

Partial Utilisation Pré-chargé ?
partial-item-header.hbs En-têtes des items Oui
partial-item-description.hbs Descriptions des items Oui
partial-item-nav.hbs Navigation des items Oui
partial-item-prix.hbs Prix des items Oui
partial-item-effects.hbs Effets des items Oui (ajouté)
partial-active-effects.hbs Effets actifs (actors) Oui (ajouté)
partial-automation.hbs Automatisation Oui
editor-notes-gm.hbs Notes GM Oui
hud-adversites.hbs HUD Adversités Oui

Templates principaux

Fiches d'acteurs :

  • actor-sheet.hbs - Feuille de personnage
  • creature-sheet.hbs - Feuille de créature

Fiches d'items :

  • item-arme-sheet.hbs
  • item-capaciteautomata-sheet.hbs
  • item-competence-sheet.hbs
  • item-don-sheet.hbs
  • item-equipement-sheet.hbs
  • item-historique-sheet.hbs
  • item-monnaie-sheet.hbs
  • item-pacte-sheet.hbs
  • item-pouvoirselementaire-sheet.hbs
  • item-profil-sheet.hbs
  • item-protection-sheet.hbs
  • item-ressource-sheet.hbs
  • item-rune-sheet.hbs
  • item-runeeffect-sheet.hbs
  • item-talent-sheet.hbs
  • item-tendance-sheet.hbs
  • item-traitchaotique-sheet.hbs
  • item-traitdemoniaque-sheet.hbs
  • item-traitespece-sheet.hbs

Outils de test

Un script de test a été créé pour valider les corrections :

  • Fichier : test-templates.js
  • Exécution : node test-templates.js

Fonctionnalités du test :

  1. Vérifie que tous les templates préchargés existent
  2. Scanne tous les templates pour trouver les partials utilisés
  3. Vérifie que tous les partials utilisés sont préchargés
  4. Valide le fichier de localisation JSON

Bonnes pratiques rappelées

Pré-chargement des templates Handlebars

En Foundry VTT v12+, il est obligatoire de pré-charger tous les partials Handlebars utilisés via la fonction foundry.applications.handlebars.loadTemplates() dans le hook init.

Pourquoi ?

  • Les partials ne sont pas chargés automatiquement
  • Sans pré-chargement, le rendu échouera avec une erreur "partial could not be found"
  • Le pré-chargement améliore les performances en cacheant les templates

Où ? Dans le hook init, avant l'enregistrement des feuilles (sheets) :

Hooks.once("init", async function () {
  // Pré-charger les templates AVANT d'enregistrer les feuilles
  await MournbladeCYD2Utility.preloadHandlebarsTemplates();
  
  // Ensuite enregistrer les feuilles
  Actors.registerSheet(...);
  Items.registerSheet(...);
});

Gestion des chemins des templates

Les chemins doivent être relatifs au répertoire systems/ :

  • Bon : 'systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs'
  • Mauvais : './templates/partial-active-effects.hbs'

Impact des corrections

Avant les corrections :

  • Ouverture des feuilles de personnage → Erreur
  • Ouverture des feuilles de créature → Erreur
  • Affichage des effets actifs → Impossible
  • Utilisation des effets d'items → Problèmes potentiels

Après les corrections :

  • Toutes les feuilles s'ouvrent correctement
  • Les effets actifs s'affichent correctement
  • Tous les items affichent leurs effets
  • Plus d'erreurs de templates manquants

Recommandations pour le développement futur

  1. Toujours pré-charger les nouveaux partials lorsqu'ils sont ajoutés
  2. Utiliser un script de test pour valider les templates après modification
  3. Maintenir une liste à jour des partials utilisés dans le projet
  4. Vérifier les erreurs de console lors du développement
  5. Tester toutes les feuilles après ajout de nouveaux partials

Fichiers modifiés

Fichier Modification Statut
modules/mournblade-cyd2-utility.js Ajout de 2 partials dans preloadHandlebarsTemplates() Corrigé
test-templates.js Nouveau fichier de test Ajouté
CORRECTIONS.md Documentation des corrections Ajouté

Auteurs

Corrections réalisées par : Mistral Vibe (via Vibe CLI) Date : 2026-06-07