- Fixed grid-2 to grid-2col CSS class usage
- Replaced improper <p><a> tags with <div><a> in item lists (actor-weapons, actor-defenses, group-items, group-vehicles)
- Fixed typos: smarttlk -> smarttl, compétence -> Compétence
- Fixed duplicate class attributes
- Standardized HTML comments to Handlebars comments ({{!-- --}})
- Added missing localizations for Character and Skills headers
- Removed orphan {{/if}} tag in character-id.hbs
- Created npc-skill-category.hbs partial to eliminate 150+ lines of duplicated skill category code in actor-npc-sheet.hbs
- Created item-list.hbs partial for reusable item list display
- Fixed html.find(...).forEach error in roll.mjs by ensuring jQuery object
- Added .history/ to .gitignore
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
9.3 KiB
Révision Complète des Templates Acteurs Vermine2047
📅 Date: 2026-06-04
🎯 Objectif
Réviser fichiers par fichier les templates des acteurs pour identifier et corriger les duplications et incohérences, comme demandé par l'utilisateur.
✅ Corrections Effectuées
1. Corrections de Structure CSS
- ✅
templates/actor/parts/actor-items.hbs:77-grid grid-2→grid grid-2col
2. Corrections des Balises HTML
Toutes les balises <p><a> mal utilisées dans les listes d'items ont été remplacées par <div><a class="item-control item-edit"> :
- ✅
templates/actor/parts/actor-weapons.hbs:25-36- 6 balises<p>corrigées - ✅
templates/actor/parts/actor-defenses.hbs:38-41- 4 balises<p>corrigées - ✅
templates/actor/group/group-items.hbs:20-21- 2 balises<p>corrigées - ✅
templates/actor/group/group-vehicles.hbs:22-27- 3 balises<p>corrigées
Impact: Meilleure sémantique HTML et cohérence avec le reste du codebase.
3. Corrections de Fautes de Frappe
- ✅
templates/actor/character/character-totem.hbs:12-16,19-23,26-30-smarttlk→smarttl(3 occurrences) - ✅
templates/actor/character/character-totem.hbs:98-{{compétence}}→"Compétence"(tooltip)
4. Corrections de Classes CSS Dupliquées
- ✅
templates/actor/character/character-totem.hbs:59-class="item-name" class="flexrow"→class="item-name flexrow"
5. Corrections de Commentaires HTML
Tous les commentaires HTML standard <!-- --> ont été convertis en commentaires Handlebars {{!-- --}} :
- ✅
templates/actor/character/character-features.hbs:1 - ✅
templates/actor/character/character-header.hbs:1 - ✅
templates/actor/group/group-header.hbs:1 - ✅
templates/actor/character/character-totem.hbs:30-34- Commentaire multi-lignes simplifié - ✅
templates/actor/character/character-id.hbs:5- Ajout de commentaire
6. Uniformisation des Localisations
- ✅
templates/actor/character/character-features.hbs:2-Caractéristiques→{{ localize 'VERMINE.abilities' }} - ✅
templates/actor/character/character-features.hbs:32-Compétences→{{ localize 'VERMINE.skills' }}
7. Suppression des Balises Orphelines
- ✅
templates/actor/character/character-id.hbs:112- Suppression de{{/if}}orphelin
8. Optimisation des Structures Dupliquées
a) Création de Partial pour les Catégories de Compétences NPC
- ✅ Nouveau fichier:
templates/actor/parts/npc-skill-category.hbs- Partial réutilisable pour afficher une catégorie de compétences
- Accepte
categoryKeyetcategoryLabelcomme paramètres
- ✅ Modification:
templates/actor/actor-npc-sheet.hbs:227-297- Remplacement de ~150 lignes de code dupliqué par une boucle Handlebars
- Utilisation du nouveau partial pour les 6 catégories (Homme, Animal, Outil, Arme, Survie, Monde)
- Réduction: ~145 lignes de code
b) Création de Partial Générique pour les Listes d'Items
- ✅ Nouveau fichier:
templates/actor/parts/item-list.hbs- Partial générique et réutilisable pour afficher des listes d'items
- Prend en charge: itemType, items, createType, showSkill
- Peut être utilisé pour standardiser l'affichage des listes dans character-totem.hbs et group-info.hbs
9. Correction d'Erreur JavaScript
- ✅
module/system/roll.mjs:365-424- Correction de l'erreurhtml.find(...).forEach is not a function- Problème: La fonction
chatListennersrecevait un objet jQuery ou un élément DOM, ethtml.find()échouait sihtmlétait un élément DOM natif - Solution: Ajout de
const $html = $(html);au début de la fonction - Remplacement de toutes les occurrences de
html.par$html.dans la fonction - Impact: La fonction gère maintenant correctement les deux types d'entrée (jQuery object ou DOM element)
- Problème: La fonction
📁 Fichiers Modifiés
Templates Principaux (4)
templates/actor/actor-character-sheet.hbs- OKtemplates/actor/actor-npc-sheet.hbs- ✅ Optimisétemplates/actor/actor-creature-sheet.hbs- OKtemplates/actor/actor-group-sheet.hbs- OK
Partials Character (6)
templates/actor/character/character-features.hbs- ✅ Corrigétemplates/actor/character/character-header.hbs- ✅ Corrigétemplates/actor/character/character-id.hbs- ✅ Corrigétemplates/actor/character/character-stories.hbs- OKtemplates/actor/character/character-totem.hbs- ✅ Corrigé (multiples corrections)templates/actor/character/character-combat.hbs- OK (à optimiser)
Partials Parts (7)
templates/actor/parts/actor-items.hbs- ✅ Corrigétemplates/actor/parts/actor-weapons.hbs- ✅ Corrigétemplates/actor/parts/actor-defenses.hbs- ✅ Corrigétemplates/actor/parts/actor-effects.hbs- OKtemplates/actor/parts/npc-skill-item.hbs- OKtemplates/actor/parts/npc-skill-category.hbs- ✅ NOUVEAUtemplates/actor/parts/item-list.hbs- ✅ NOUVEAU
Partials Group (5)
templates/actor/group/group-header.hbs- ✅ Corrigétemplates/actor/group/group-info.hbs- ✅ Corrigétemplates/actor/group/group-items.hbs- ✅ Corrigétemplates/actor/group/group-vehicles.hbs- ✅ Corrigétemplates/actor/group/group-experience.hbs- OK
JavaScript (2)
module/system/roll.mjs- ✅ Correction de l'erreur html.find().forEachmodule/system/hooks.mjs- OK (pas de modification nécessaire)
Nouveaux Fichiers Créés (2)
templates/actor/parts/npc-skill-category.hbstemplates/actor/parts/item-list.hbs
📊 Statistiques
- Fichiers analysés: 24 templates + 2 fichiers JS
- Fichiers modifiés: 16 fichiers
- Nouveaux fichiers créés: 3 (2 partials + 1 rapport)
- Duplications supprimées: 1 majeure (catégories de compétences NPC)
- Lignes de code réduites: ~150+ lignes
- Problèmes corrigés: 20+
- Partials créés: 2
🔍 Problèmes Restants à Résoudre
1. Duplication des Sections de Blessures
Les templates suivants ont des implémentations similaires pour les blessures :
templates/actor/character/character-combat.hbs(lignes 108-199)templates/actor/npc/npc-combat.hbs(lignes 23-47)templates/actor/creature/creature-combat.hbs(lignes 34-66)
Solution recommandée: Créer un partial templates/actor/parts/wounds-section.hbs pour standardiser l'affichage des blessures (minor, major, deadly).
2. Utilisation du Partial item-list.hbs
Le partial item-list.hbs a été créé mais n'est pas encore utilisé. Il pourrait remplacer les duplications dans :
templates/actor/character/character-totem.hbs(5 listes: abilities, specialties, backgrounds, traumas, evolutions)templates/actor/group/group-info.hbs(5 listes identiques)templates/actor/group/group-experience.hbs(1 liste)
Impact potentiel: Réduction de ~200+ lignes de code dupliqué.
3. Erreurs JavaScript Restantes
Les erreurs suivantes n'ont pas encore été investiguées :
vermine2047.mjs:83-Cannot read properties of undefined (reading 'Actor')- Problème de timing avecgame.system.template.Actoractor.mjs:89-Cannot read properties of undefined (reading 'difficulty')- Problème dansprepareCombatStatus
📝 Rapport Complet
Un rapport détaillé a été créé : REVISION_TEMPLATES_RAPPORT.md
🎯 Résumé des Actions
✅ Terminées
- Correction de toutes les incohérences de syntaxe HTML/CSS
- Suppression des duplications évidentes (catégories de compétences NPC)
- Correction des fautes de frappe et erreurs de syntaxe
- Uniformisation des commentaires et localisations
- Correction de l'erreur JavaScript
html.find(...).forEach - Création de 2 nouveaux partials réutilisables
⏳ Recommandations pour la Suite
- Créer un partial pour les blessures (
wounds-section.hbs) - Appliquer le partial
item-list.hbsdans les templates existants - Investiguer et corriger les erreurs JavaScript restantes
- Tester tous les templates dans FoundryVTT
💡 Améliorations Apportées
Maintenabilité
- Réduction de la duplication: ~150 lignes supprimées grâce aux partials
- Meilleure organisation: 2 nouveaux partials créés pour une meilleure réutilisation
- Cohérence accrue: Uniformisation des commentaires et des balises
Robustesse
- Correction d'erreurs: 1 erreur JavaScript critique corrigée
- Meilleure sémantique HTML: Remplacement des balises
<p>inappropriées - Suppression de balises orphelines: Élimination de
{{/if}}sans correspondant
Internationalisation
- Localisations ajoutées: 2 titres maintenant localisés
- Préparation pour traduction: Structure plus propre pour les traductions futures
📌 Conclusion
Cette révision a permis de :
- Corriger les erreurs de syntaxe et d'incohérence dans les templates
- Optimiser le code en supprimant les duplications évidentes
- Améliorer la maintenabilité avec de nouveaux partials
- Stabiliser le code JavaScript en corrigant une erreur critique
Le travail peut être considéré comme complet pour la phase 1 (nettoyage et correction). La phase 2 (optimisation avancée) consiste à créer des partials supplémentaires pour les sections de blessures et à appliquer le partial item-list.hbs dans les templates existants.