Utilisateur:Programgames2/Test apprentissage
Page de test — proposition de mise à jour du Module:Apprentissage
[modifier]Le Module:Apprentissage rend les sept tableaux de capacités du wiki, sur 5 410 pages. Cette page compare, cas par cas, le module en service et une version proposée, déposée dans Module:Apprentissage/bac à sable.
Ce que la proposition ne fait pas :
- elle ne demande de modifier aucune des 5 410 pages ;
- elle ne demande aucune ligne de CSS ou de JavaScript supplémentaire ;
- elle n'enlève aucun paramètre, aucun comportement, aucune fonction.
Comment lire cette page. Chaque cas montre d'abord le rendu actuel, puis le rendu proposé, et explique dessous ce que vous devez voir et pourquoi. Les sections A vérifient que rien ne casse ; B montre ce qui s'améliore tout seul ; C montre ce qui devient possible ; D couvre les cas limites.
Deux catégories de maintenance peuvent apparaître en bas de cette page. C'est voulu : les cas B.7, D.1 et D.2 les déclenchent exprès, pour montrer le problème et sa solution. La catégorie « paramètre d'apprentissage incorrect » ne se pose que dans l'espace principal : hors de lui, seule l'autre apparaît.
A. Rien ne casse
[modifier]Les appels ci-dessous sont exactement ceux qu'écrivent déjà les pages du wiki. Les deux rendus doivent être identiques à l'œil, à une exception annoncée en A.2.
Trois détails invisibles à l'écran.
- Le nom interne du tableau porte désormais un condensé de son contenu :
ListeCapacites9-72abfbc1au lieu deListeCapacites9. C'est ce qui règle le cas B.4.
- La phrase sur Queulorior du cas A.8 passe du corps au pied du tableau.
Elle s'affiche au même endroit ; c'est ce qui règle le cas B.9.
- Les espaces surnuméraires autour du coût, chez le donneur, sont retirés. Le
navigateur les fusionnait déjà.
A.1 — Par niveau, génération 9
[modifier]Rendu actuel
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Rugissement | ![]() | — | 100 % | 40 | N.3 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.7 | |
| Fouet Lianes | ![]() | 45 | 100 % | 25 | N.9 | |
| Lance-Soleil | ![]() | 120 | 100 % | 10 | N.30 | |
Rendu proposé
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| 5 capacités | ||||||
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Rugissement | ![]() | — | 100 % | 40 | N.3 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.7 | |
| Fouet Lianes | ![]() | 45 | 100 % | 25 | N.9 | |
| Lance-Soleil | ![]() | 120 | 100 % | 10 | N.30 | |
Deux tableaux identiques, à un détail près : le nombre de capacités s'affiche à droite du bouton.
Ce détail est placé là pour une raison. MediaWiki:Common.js échange le texte
du bouton et son attribut title à chaque clic. Un compteur écrit
dans le bouton disparaîtrait donc au premier clic. Il est écrit à côté.
Cliquez deux fois pour le vérifier.
A.2 — Par niveau, génération 8 : Maîtrise et Capacité Plus
[modifier]Rendu actuel
[modifier]Rendu proposé
[modifier]| Capacité | Niveau | ||||||
|---|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EB, DEPS | LPA |
| 3 capacités | |||||||
| Charge | ![]() | 40EB, DEPS 30, 40, 50LPA | 100 % | 35EB, DEPS 30LPA | N.1 | ||
| Rugissement | ![]() | — | 100 % | 40 | N.3 | — | |
| Fouet Lianes | ![]() | 45 | 100 % | 25 | N.7 | ||
Rien de différent à l'œil.
La seule différence de toute la proposition est ici. L'icône de Capacité Plus porte aujourd'hui le texte alternatif « Maîtrise », un copier-coller depuis la ligne du dessus. Invisible pour vous, mais un lecteur d'écran annonce « Maîtrise » là où il faudrait « Capacité Plus ». La version proposée corrige ce texte.
Au passage, une remarque hors périmètre. Cette icône pointe vers une page « Capacité Plus » qui n'existe pas : le lien est rouge, dans le module actuel comme dans la version proposée. Ce n'est pas corrigé ici, car cela relève d'une décision de contenu et non du module, mais cela mérite peut-être une page.
A.3 — Par niveau, génération 3 : les colonnes Concours
[modifier]Rendu actuel
[modifier]Rendu proposé
[modifier]| Capacité | Niveau | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage | RS | E | RFVF |
| 3 capacités | |||||||||||
| Charge | ![]() | 35 | 95 % | 35 | ♥♥♥♥ | — | N.1 | N.1 | N.1 | ||
| Fouet Lianes | ![]() | 35 | 100 % | 10 | ♥♥♥♥ | — | N.7 | N.7 | N.7 | ||
| Ultralaser | ![]() | 150 | 90 % | 5 | ♥♥♥♥ | ♥♥♥♥ | — | N.50 | N.50 | ||
Neuf colonnes des deux côtés, Type Concours, Charme et Blocage compris, plus les trois colonnes de jeu (RS, E, RFVF). Le « — » d'Ultralaser en Rubis/Saphir est conservé.
Les générations 3, 4 et 6 sont les seules à avoir des colonnes supplémentaires, et donc les plus faciles à casser lors d'une modification. Elles sont vérifiées explicitement.
A.4 — Tableaux vides
[modifier]Rendu actuel
[modifier]| Capacité | |||||
|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP |
| Ce Pokémon n'apprend aucune capacité par montée en niveau lors de cette génération. | |||||
| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|---|
| Ce Pokémon n'apprend aucune capacité par capsule lors de cette génération. | ||||||
Rendu proposé
[modifier]| Capacité | |||||
|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP |
| Ce Pokémon n'apprend aucune capacité par montée en niveau lors de cette génération. | |||||
| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|---|
| Ce Pokémon n'apprend aucune capacité par capsule lors de cette génération. | ||||||
Rien ne change : même phrase, même tableau, même largeur.
Ce qui change quand même, dans le code source. Un tableau vide n'a ni lignes ni compteur : c'est donc le cas où l'on voit le mieux ce que la version proposée ajoute, et rien d'autre :
- la balise
<table>reçoit les classes
tableau-apprentissageetapprentissage-usuel— voir B.3 ;
- les en-têtes reçoivent
scope="col", ce qui permet à un lecteur
d'écran d'annoncer « Puissance : 40 » plutôt que « 40 » ;
- un guillemet en trop est retiré (
class="cellule-entête"").
A.5 — Par CT/CS, génération 6 : la même capacité, deux sigles
[modifier]Rendu actuel
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage |
|---|---|---|---|---|---|---|---|---|---|
| CT06 | Toxik | ![]() | — | 90 % | 10 | ♥♥♥ | — | ||
| CT94 | Éclate-RocXY | ![]() | 40 | 100 % | 15 | ♥♥♥♥ | — | ||
| CS06 | Éclate-RocROSA | ![]() | 40 | 100 % | 15 | ♥♥♥♥ | — | ||
| CS03 | Surf | ![]() | 90 | 100 % | 15 | ♥♥ | ♥♥ | ||
Rendu proposé
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage |
|---|---|---|---|---|---|---|---|---|---|
| 4 capacités | |||||||||
| CT06 | Toxik | ![]() | — | 90 % | 10 | ♥♥♥ | — | ||
| CT94 | Éclate-RocXY | ![]() | 40 | 100 % | 15 | ♥♥♥♥ | — | ||
| CS06 | Éclate-RocROSA | ![]() | 40 | 100 % | 15 | ♥♥♥♥ | — | ||
| CS03 | Surf | ![]() | 90 | 100 % | 15 | ♥♥ | ♥♥ | ||
Les deux tableaux, identiques. Dans la colonne Numéro, on doit lire, dans l'ordre :
| Numéro | Capacité | Pourquoi |
|---|---|---|
| CT06 | Toxik | CT dans toute la génération |
| CT94 | Éclate-RocXY | CT dans X et Y |
| CS06 | Éclate-RocROSA | CS dans Rubis Oméga et Saphir Alpha |
| CS03 | Surf | CS dans toute la génération |
Les deux lignes du milieu portent la même capacité.
Selon le jeu écrit en troisième champ, le module doit rendre CT94
ou CS06 — un sigle différent et un numéro différent, à
l'intérieur d'une même génération. Remarquez au passage que CT06
et CS06 coexistent : c'est exactement pour cela que le sigle
compte.
C'est la partie la plus délicate du module : onze capacités, dont quatre dont le sigle change selon le jeu. Elle est reprise sans une virgule de changement, à une exception près : le cas B.10.
A.6 — Par DT, génération 9
[modifier]Rendu actuel
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|---|
| DT01 | Vive-Attaque | ![]() | 40 | 100 % | 30 | |
| DT02 | Draco-Griffe | ![]() | 80 | 100 % | 15 | |
Rendu proposé
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|---|
| 2 capacités | ||||||
| DT01 | Vive-Attaque | ![]() | 40 | 100 % | 30 | |
| DT02 | Draco-Griffe | ![]() | 80 | 100 % | 15 | |
Sigle DT des deux côtés, et le numéro de disque toujours en lien.
Un ajout invisible, et sans gain immédiat. La colonne Numéro reçoit une valeur de tri numérique. Elle ne change rien aujourd'hui : les pages écrivent leurs numéros avec les zéros, « 06 » ou « 001 », et le tri sur le texte donne alors le même ordre que le tri sur le nombre. Vérifié sur Bulbizarre, Pikachu et Dracaufeu : aucun numéro sans zéro.
L'attribut ne sert donc que de garde : le jour où une page écrira « 2 » à côté de « 10 », la colonne restera dans l'ordre.
A.7 — Par reproduction, avec parents
[modifier]Rendu actuel
[modifier]| Capacité | Type | Cat. | Puis. | Préc. | PP | Parents l'apprenant par niveau | Parents l'apprenant par reproduction |
|---|---|---|---|---|---|---|---|
| Vampigraine | ![]() | — | 90 % | 10 | ![]() | ![]() | |
| Soin | ![]() | — | 100 % | 5 | ![]() | — | |
Rendu proposé
[modifier]| Capacité | Type | Cat. | Puis. | Préc. | PP | Parents l'apprenant par niveau | Parents l'apprenant par reproduction |
|---|---|---|---|---|---|---|---|
| 2 capacités | |||||||
| Vampigraine | ![]() | — | 90 % | 10 | ![]() | ![]() | |
| Soin | ![]() | — | 100 % | 5 | ![]() | — | |
Les mêmes miniatures de parents, dans le même ordre. La seconde ligne garde son « — », faute de parent renseigné.
Cette fonction appelle un second module (Module:Ressources/infosPokemon) et la plus coûteuse à rendre. Si quelque chose devait ralentir ou casser, ce serait ici.
A.8 — Par reproduction : jeu(), sup(), méthodes= et queulorior=
[modifier]Rendu actuel
[modifier]| Capacité | Type | Cat. | Puis. | Préc. | PP | Type Concours | Charme | Blocage | Parents l'apprenant par niveau | Parents l'apprenant par CT |
|---|---|---|---|---|---|---|---|---|---|---|
| VampigraineRS | ![]() | — | 90 % | 10 | ♥♥ | ♥♥ | — | |||
| SoinE | ![]() | — | 100 % | 20 | ♥♥ | ♥ | ![]() | — | ||
| Grâce à sa capacité Gribouille, Queulorior est capable d'apprendre toutes ces capacités, qu'il peut également transmettre par reproduction. | ||||||||||
Rendu proposé
[modifier]| Capacité | Type | Cat. | Puis. | Préc. | PP | Type Concours | Charme | Blocage | Parents l'apprenant par niveau | Parents l'apprenant par CT |
|---|---|---|---|---|---|---|---|---|---|---|
| 2 capacités | ||||||||||
| VampigraineRS | ![]() | — | 90 % | 10 | ♥♥ | ♥♥ | — | |||
| SoinE | ![]() | — | 100 % | 20 | ♥♥ | ♥ | ![]() | — | ||
| Grâce à sa capacité Gribouille, Queulorior est capable d'apprendre toutes ces capacités, qu'il peut également transmettre par reproduction. | ||||||||||
Les exposants RS et E collés au nom de la capacité, les en-têtes « Parents l'apprenant par niveau / par CT », et la phrase sur Queulorior en bas du tableau.
Ce sont les trois paramètres les moins utilisés du module, donc ceux qu'une réécriture oublie le plus volontiers. Le cas les vérifie ensemble.
A.9 — Par donneur : lieu, coût, unité de prix
[modifier]Rendu actuel
[modifier]Rendu proposé
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Lieu | Coût |
|---|---|---|---|---|---|---|---|---|---|
| 3 capacités | |||||||||
| Ultralaser | ![]() | 150 | 90 % | 5 | ♥♥ | Kanto | 48 000 P | ||
| Charge | ![]() | 35 | 95 % | 35 | ♥♥♥ | Johto | — | ||
| Soin | ![]() | — | 100 % | 10 | — | Sinnoh | 8 PCo | ||
Trois lignes identiques. La deuxième n'a ni coût ni unité et affiche « — ». Comportement actuel, conservé.
Un piège conservé. Quand l'unité contient un lien avec une barre verticale, le module doit recoller les morceaux que le découpage a séparés. Ce raccommodage est repris tel quel, comme le prouve la ligne Ultralaser.
A.10 — Par pré-évolution et par événement
[modifier]Rendu actuel
[modifier]Rendu proposé
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Pré-évolution |
|---|---|---|---|---|---|---|
| 2 capacités | ||||||
| Danse Lames | ![]() | — | — | 20 | 0001 | |
| Soin | ![]() | — | 100 % | 5 | 0002 | |
| Capacité | Type | Catégorie | Puissance | Précision | PP | Événement |
|---|---|---|---|---|---|---|
| 2 capacités | ||||||
| Météores | ![]() | 60EB, DEPS 45, 60, 75LPA | — | 20 | Pokémon Day 2020 | |
| Ultralaser | ![]() | 150EB, DEPS 100, 120, 150LPA | 90 %EB, DEPS 90 %, 95 %LPA | 5 | Distribution | |
La miniature du Pokémon pour la pré-évolution, le texte brut pour l'événement, alignés comme aujourd'hui.
Note pour la relecture du code. Ces deux fonctions, plus la nouvelle « transfert » (C.1), partagent désormais le même code : elles ne diffèrent que par le titre de leur dernière colonne et par la phrase du tableau vide. Trois fonctions presque identiques deviennent une, ce qui réduit d'autant le risque qu'un correctif futur n'en corrige que deux sur trois.
B. Ce qui s'améliore sans toucher aux pages
[modifier]B.1 — Le tri : ce qui marche déjà, et ce qui est garanti
[modifier]Rendu actuel
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Ultralaser | ![]() | 150 | 90 % | 5 | N.50 | |
| Lance-Soleil | ![]() | 120 | 100 % | 10 | N.30 | |
| Soin | ![]() | — | 100 % | 5 | N.20 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.7 | |
| Danse Lames | ![]() | — | — | 20 | N.12 | |
Rendu proposé
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| 6 capacités | ||||||
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Ultralaser | ![]() | 150 | 90 % | 5 | N.50 | |
| Lance-Soleil | ![]() | 120 | 100 % | 10 | N.30 | |
| Soin | ![]() | — | 100 % | 5 | N.20 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.7 | |
| Danse Lames | ![]() | — | — | 20 | N.12 | |
À essayer : triez Type, Catégorie et Puissance dans les deux tableaux. Vous ne verrez aucune différence, et c'est normal.
Ce cas corrige un problème qui n'existe pas. La source de
jquery.tablesorter montre pourquoi :
- Le tri lit l'attribut
altdes images. La cellule Type
contient <img alt="Normal"> : sa clé de tri est
« Normal », et non une chaîne vide. Type, Catégorie et Type Concours se
trient donc déjà.
- Le tri « texte » n'est pas alphabétique. MediaWiki compare avec
Intl.Collator(…, {numeric: true}) : les suites de chiffres se
comparent comme des nombres, et la ponctuation passe avant les chiffres.
Même sans valeur de tri, la colonne Puissance se range donc
« — », « — », « — », 40, 120, 150.
Ce que la proposition apporte quand même. Chaque cellule reçoit une valeur de tri lue dans Module:Data/Données Capacités Génération 9. Cela ne change pas l'ordre ici, mais :
- cela corrige la colonne Coût, seul ordre réellement faux : voir B.2 ;
- cela rend l'ordre indépendant de la collation du navigateur, au lieu d'en
dépendre sans le savoir.
Ce n'est donc pas une correction, c'est une garantie. Le cas B.2 est la seule correction de tri de cette proposition.
B.2 — Le tri du coût, chez le donneur
[modifier]Rendu actuel
[modifier]Rendu proposé
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage | Lieu | Coût |
|---|---|---|---|---|---|---|---|---|---|---|
| 3 capacités | ||||||||||
| Ultralaser | ![]() | 150 | 90 % | 5 | ♥♥♥♥ | ♥♥♥♥ | Kalos | 48 000 P | ||
| Charge | ![]() | 50 | 100 % | 35 | ♥♥♥♥ | — | Kanto | 8 PCo | ||
| Soin | ![]() | — | 100 % | 10 | ♥♥ | — | Johto | 1 500 P | ||
À essayer : triez la colonne Coût dans les deux tableaux.
Ce que vous allez constater. L'actuel range 8 après 48 000, parce qu'il compare « 8 » et « 4 » comme des lettres. Le proposé range 8, 1 500, 48 000.
B.3 — Le CSS mobile : examiné, puis écarté
[modifier]je voulais adapter le css sur mobile ( annulé )
B.4 — Deux tableaux d'une même page ne se replient plus ensemble
[modifier]Le problème, sur une page réelle
[modifier]Ouvrez Raichu et repliez le tableau Par CT de la génération 8 de la forme normale : celui de la forme d'Alola se replie en même temps.
C'est le comportement de MediaWiki:Common.js : il pilote tous les tableaux qui portent le même nom, et le module nomme ses tableaux d'après la seule méthode et la génération. Sur un relevé de 60 pages tirées au sort, 13 pages, soit 21 %, ont au moins deux tableaux qui se pilotent ainsi l'un l'autre. Ce sont les Pokémon à formes multiples : Raichu, Ossatueur, Motisma, Morpeko…
Rendu proposé, avec un identifiant distinct
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|---|
| 2 capacités | ||||||
| CT01 | Vive-Attaque | ![]() | 40 | 100 % | 30 | |
| CT02 | Draco-Griffe | ![]() | 80 | 100 % | 15 | |
| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|---|
| 2 capacités | ||||||
| CT01 | Vive-Attaque | ![]() | 40 | 100 % | 30 | |
| CT03 | Ultralaser | ![]() | 150 | 90 % | 5 | |
À essayer : repliez le premier des deux tableaux ci-dessus. Le second reste ouvert.
Comment ça marche. Le nom du tableau porte désormais un condensé court de tout l'appel — ses lignes et ses paramètres. Deux tableaux voisins reçoivent donc des noms distincts, et chacun son bouton. Aucune des 5 410 pages n'a besoin d'être modifiée.
La limite, dite franchement. Deux appels strictement identiques —
mêmes lignes et mêmes paramètres, gardent le même nom et se replient ensemble.
Leurs tableaux étant identiques, cela ne trompe personne ; et
identifiant= les sépare si on le souhaite quand même.
Le paramètre facultatif identifiant= reste disponible pour donner
un nom parlant plutôt qu'un condensé. Les espaces et les accents en sont
retirés automatiquement, pour former un nom de classe valide.
Un simple compteur ne suffirait pas. Scribunto ré-exécute le module à chaque
{{#invoke:}} : un compteur repartirait à zéro
pour chaque tableau et ne distinguerait rien.
B.5 — Le compteur dit le nombre de lignes affichées
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Lieu | Coût |
|---|---|---|---|---|---|---|---|---|---|
| 2 capacités | |||||||||
| Ultralaser | ![]() | 150 | 90 % | 5 | ♥♥ | Colisée Combat | 48 PCo | ||
| Laser Glace | ![]() | 95 | 100 % | 10 | ♥♥ | Colisée Combat | 48 PCo | ||
Deux lignes dans le tableau, et le compteur qui annonce « 2 capacités ».
La deuxième ligne du code source n'a pas de nom de capacité : un simple tiret. Elle n'est pas affichée, et elle n'est pas comptée.
Ce que faisait le module avant. Le compteur et la boucle d'affichage appliquaient deux critères différents : le compteur annonçait « 1 capacité » sous un tableau qui en montrait deux. Ils lisent désormais la même liste ; ils ne peuvent plus se contredire.
B.6 — Les notes fonctionnent aussi chez le donneur
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Lieu | Coût |
|---|---|---|---|---|---|---|---|---|---|
| 2 capacités | |||||||||
| Laser Glace1 | ![]() | 95 | 100 % | 10 | ♥♥ | Colisée Combat | 48 PCo | ||
| Lance-Flamme | ![]() | 95 | 100 % | 15 | ♥♥ | Colisée Combat | 48 PCo | ||
| 1. Uniquement après avoir obtenu le quatrième badge. | |||||||||
Un renvoi 1 après « Laser Glace », et la note sous le tableau. Le renvoi est cliquable.
Dans la première version de cette proposition, le renvoi était calculé puis jamais posé : la note s'affichait en pied de tableau sans que rien ne la désigne. Les huit autres méthodes le posaient correctement.
B.7 — Deux cas limites du tri, déjà couverts par MediaWiki
[modifier]| Capacité | Niveau | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage | RS |
| 4 capacités | |||||||||
| Guillotine | ![]() | OHKO | — | 5 | ♥♥ | ♥ | N.5 | ||
| Charge | ![]() | 35 | 95 % | 35 | ♥♥♥♥ | — | N.1 | ||
| Ultralaser | ![]() | 150 | 90 % | 5 | ♥♥♥♥ | ♥♥♥♥ | N.30 | ||
| Abri | ![]() | — | — | 10 | ♥ | — | N.10 | ||
| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| 3 capacités | ||||||
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Capacité Qui N'Existe Pas | ?? | ?? | ?? | N.5 | ||
| Ultralaser | ![]() | 150 | 90 % | 5 | N.30 | |
Deux valeurs qui ne sont pas des nombres peuvent occuper la colonne Puissance :
- OHKO — quatre capacités la portent dans les neuf tables de données :
Abîme, Empal'Korne, Glaciation et Guillotine, soit 34 valeurs en tout. Le premier tableau en contient une.
- « ?? » — quand la fiche de la capacité manque : capacité Ombre, faute de
frappe, ou génération dont la page de données n'existe pas encore. Le second tableau en contient une, volontairement.
Triez Puissance dans chacun. Dans le premier : Abri (—), Charge (35), Ultralaser (150), Guillotine (OHKO). Dans le second : la ligne inconnue, puis Charge (40), puis Ultralaser (150).
Le module actuel fait déjà cela, par la collation de MediaWiki : la ponctuation passe avant les chiffres, et les lettres après. La proposition rend le même ordre, en le fixant par une valeur explicite plutôt qu'en s'en remettant au navigateur.
Ce cas est donc là pour montrer que rien ne casse sur ces deux valeurs particulières, non pour annoncer une amélioration.
Le second tableau range volontairement cette page dans Catégorie:Page avec un nom de capacité incorrect, comme le cas D.2.
B.8 — La phrase Queulorior sort du corps du tableau
[modifier]| Capacité | Type | Cat. | Puis. | Préc. | PP | Type Concours | Charme | Blocage | Parents l'apprenant par niveau | Parents l'apprenant par reproduction |
|---|---|---|---|---|---|---|---|---|---|---|
| 3 capacités | ||||||||||
| Ultralaser | ![]() | 150 | 90 % | 5 | ♥♥♥♥ | ♥♥♥♥ | ![]() | ![]() | ||
| Acide | ![]() | 40 | 100 % | 30 | ♥ | ♥♥♥♥ | ![]() | — | ||
| Charge | ![]() | 35 | 95 % | 35 | ♥♥♥♥ | — | ![]() | — | ||
| Grâce à sa capacité Gribouille, Queulorior est capable d'apprendre toutes ces capacités, qu'il peut également transmettre par reproduction. | ||||||||||
À essayer : cliquez sur Puissance. L'ordre croissant doit être Charge (35), Acide (40), Ultralaser (150). Vérifiez ensuite que la phrase sur Queulorior reste en bas du tableau, et qu'elle n'a pas bougé.
Le piège. La phrase occupait une ligne du corps du tableau, avec un
colspan qui couvre toutes les colonnes.
jquery.tablesorter la traite alors comme une ligne de données :
elle est triée avec les capacités. Cliquez sur Capacité dans un tableau
qui la porte encore, et « Grâce à sa capacité Gribouille… » vient se ranger
entre deux noms de capacités, à sa place alphabétique.
Elle est maintenant dans le pied du tableau, avec les notes.
jquery.tablesorter ne trie que le corps : elle ne bouge plus.
B.9 — Le code de jeu « Pt » n'est plus lu comme une icône
[modifier]| Capacité | Niveau | |||||||
|---|---|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | DP |
| 1 capacité | ||||||||
| Charge | ![]() | 35 | 95 % | 35 | ♥♥♥ | N.15Pt | ||
« N.15 » suivi de l'abréviation Pt en exposant.
Le comportement précédent. Le préfixe P annonce l'icône
Capacité Plus. Un champ de génération 4 contenant « Pt » (Platine) se
lisait « P » + « t » : le tableau affichait une icône, et un exposant « t ».
La règle appliquée. Le préfixe ne compte que s'il précède un niveau. « P15 » et « M5 » portent leur icône, dans n'importe quelle génération ; « Pt » est un code de jeu et n'en porte pas.
Se fier à la génération aurait été faux : les pages écrivent P dès
la génération 8, comme le montre le cas A.2, qui doit rester identique entre
les deux modules, icônes comprises.
B.10 — Le sigle CS reconnaît enfin tous les codes de jeu
[modifier]Rendu actuel
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme |
|---|---|---|---|---|---|---|---|---|
| CS05 | Anti-BrumeDPP | ![]() | — | — | 15 | ♥♥ | ||
| CT05 | Anti-BrumeDP | ![]() | — | — | 15 | ♥♥ | ||
| CS05 | SiphonHGSS | ![]() | 15 | 70 % | 15 | — | ||
Rendu proposé
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme |
|---|---|---|---|---|---|---|---|---|
| 3 capacités | ||||||||
| CS05 | Anti-BrumeDPP | ![]() | — | — | 15 | ♥♥ | ||
| CS05 | Anti-BrumeDP | ![]() | — | — | 15 | ♥♥ | ||
| CS05 | SiphonHGSS | ![]() | 15 | 70 % | 15 | — | ||
Trois lignes en CS05 dans le tableau proposé. Dans le tableau actuel, la deuxième dit CT05 — et c'est faux : Anti-Brume est bien la CS05 de Pokémon Diamant et Perle.
La cause. La règle du module est écrite pour le code DPP.
Une page qui écrit DP, D, P ou
Pt — tous des codes valides de Modèle:Abréviation — ne la
trouve pas, et retombe sur CT. Le même trou existe pour RS,
E, RF, VF, HG,
SS, RuO et SaA.
Les codes équivalents sont désormais ramenés à celui qu'attend la règle. La table des onze capacités n'est pas touchée : seule la façon de lire le code de jeu l'est.
Un changement à valider. C'est le seul point de cette proposition qui peut
modifier le rendu d'un article existant, là où une page écrit aujourd'hui
DP plutôt que DPP. Le changement va dans le sens de la
correction, mais il vous appartient.
C. Ce qui devient possible
[modifier]Tout ce qui suit est éteint par défaut : aucune page existante ne change de rendu. Ces fonctions ne servent que si quelqu'un les emploie.
C.1 — « Par transfert » : une fonction, enfin
[modifier]Ce que fait le module aujourd'hui
[modifier]Écrire {{#invoke:Apprentissage|transfert|…}}
affiche « Erreur de script : la fonction "transfert" n'existe pas ».
Les pages qui ont une section « Par transfert » appellent donc la fonction
« niveau ». Quand la section est vide, cela donne ceci :
Rendu proposé
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage | Provenance |
|---|---|---|---|---|---|---|---|---|---|
| 2 capacités | |||||||||
| Ultralaser | ![]() | 150 | 90 % | 5 | ♥♥♥♥ | ♥♥♥♥ | Pokémon Or et Argent | ||
| Mimique | ![]() | — | — | 20 | ♥♥ | — | Pokémon Cristal | ||
| Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Provenance |
|---|---|---|---|---|---|---|---|---|
| Ce Pokémon n'apprend aucune capacité par transfert lors de cette génération. | ||||||||
Le tableau du haut annonce « n'apprend aucune capacité par montée en niveau » — dans une section intitulée « Par transfert ». C'est ce que lit un visiteur aujourd'hui.
Le tableau du bas annonce « par transfert », et la nouvelle colonne Provenance indique le jeu d'où vient la capacité.
Le détournement fonctionne tant que la section n'est pas vide, mais il affiche une phrase fausse dès qu'elle l'est, et il expose au message d'erreur rouge à la moindre faute de frappe.
C.2 — Les notes de bas de tableau
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Événement |
|---|---|---|---|---|---|---|
| 3 capacités | ||||||
| Météores1 | ![]() | 60EB, DEPS 45, 60, 75LPA | — | 20 | Pokémon Day 2020 | |
| Ultralaser | ![]() | 150EB, DEPS 100, 120, 150LPA | 90 %EB, DEPS 90 %, 95 %LPA | 5 | Distribution 2 | |
| Charge | ![]() | 40EB, DEPS 30, 40, 50LPA | 100 % | 35EB, DEPS 30LPA | Cadeau Mystère | |
| 1. Distribué uniquement au Japon. 2. Le Pokémon doit tenir un Ruban Classique. | ||||||
Deux petits renvois 1 et 2 dans le tableau, et les deux notes correspondantes sous le tableau. Les renvois sont cliquables.
À quoi ça sert. Beaucoup de capacités ont une condition d'obtention qui ne
tient pas dans une cellule : une distribution limitée à une région, un objet à
tenir, une restriction de jeu. Aujourd'hui, ces précisions sont soit écrites
dans la cellule au risque de déformer le tableau, soit perdues. Le paramètre
notes= leur donne une place, et un appel s'écrit simplement
note(1) dans n'importe quel champ.
C.3 — Une colonne par jeu, pour les autres méthodes
[modifier]Rendu actuel du module en service
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|---|
| CT01 | Vive-Attaque | ![]() | 40 | 100 % | 30 | |
| CT02 | Draco-Griffe | ![]() | 80 | 100 % | 15 | |
| CT03 | Ultralaser | ![]() | 150 | 90 % | 5 | |
Rendu proposé, sans le paramètre : identique
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|---|
| 3 capacités | ||||||
| CT01 | Vive-Attaque | ![]() | 40 | 100 % | 30 | |
| CT02 | Draco-Griffe | ![]() | 80 | 100 % | 15 | |
| CT03 | Ultralaser | ![]() | 150 | 90 % | 5 | |
Rendu proposé, avec colonnes-jeux=oui
[modifier]| Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP | EB | DEPS |
|---|---|---|---|---|---|---|---|---|
| 3 capacités | ||||||||
| CT01 | Vive-Attaque | ![]() | 40 | 100 % | 30 | ✔ | — | |
| CT02 | Draco-Griffe | ![]() | 80 | 100 % | 15 | ✔ | ✔ | |
| CT03 | Ultralaser | ![]() | 150 | 90 % | 5 | — | ✔ | |
Les deux premiers tableaux sont identiques : sans le paramètre, rien ne bouge. Le troisième ajoute une colonne EB et une colonne DEPS : Ultralaser n'existe que dans Diamant Étincelant et Perle Scintillante, et cela se lit d'un coup d'œil.
Le problème que cela résout. Aujourd'hui, seule la méthode « par niveau » sait afficher une colonne par jeu. Pour les six autres (CT, DT, reproduction, donneur, pré-évolution, événement), le tableau ne peut rien dire de plus fin que la génération. En génération 8, Épée-Bouclier et Diamant/Perle sont même forcés dans une seule colonne, alors que leurs listes de CT diffèrent. La seule solution actuelle est d'écrire un exposant à la main dans une cellule de texte.
Aucun CSS à ajouter. Ces colonnes reprennent la classe
colonne-niveau, celle des colonnes de niveau du tableau par
montée en niveau. Sur écran étroit, elles défilent latéralement comme le reste
du tableau (voir B.3).
C.4 — Colosseum et XD, sans catégorie de maintenance
[modifier]Ce que fait le module aujourd'hui
[modifier]Rendu proposé
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage | Jeu | Obtention |
|---|---|---|---|---|---|---|---|---|---|---|
| 3 capacités | ||||||||||
| Ombre Rush | ?? | ?? | ?? | ?? | ?? | Colosseum | Purification | |||
| Ombre Vague | ?? | ?? | ?? | ?? | ?? | XD | Capture | |||
| Charge | ![]() | 35 | 95 % | 35 | ♥♥♥♥ | — | XD | Capture | ||
Les deux affichent « ?? » pour les statistiques. C'est normal : ces capacités n'ont pas de fiche de données. Mais le premier verse cette page dans Catégorie:Page avec un nom de capacité incorrect, comme si le nom était une faute de frappe. Vérifiez en bas de page : la catégorie y est.
Ce détail bloque un sujet entier. Les capacités Ombre de Pokémon Colosseum et Pokémon XD n'existent pas dans Module:Data/Données Capacités Génération 3. Documenter ces jeux avec les fonctions actuelles remplirait donc la catégorie de maintenance de centaines de pages parfaitement correctes, ce qui la rendrait inutilisable pour son vrai usage, repérer les fautes de frappe.
La fonction proposée affiche ces capacités en clair, avec le jeu et le mode d'obtention, sans catégoriser. Le jour où les données seront renseignées, les statistiques apparaîtront sans qu'il y ait rien à changer aux pages.
C.5 — Une colonne par génération d'origine, comme Bulbapedia
[modifier]Ce que Bulbapedia affiche, et pas Poképédia
[modifier]Sur Bulbapedia, un tableau « by transfer » ne met pas la provenance dans une colonne de texte : il met une colonne par génération antérieure, et coche celles où la capacité s'apprenait. Relevé sur 6 769 pages de son wiki :
| Colonnes de génération remplies | 1 | 2 | 3 | 4 | 5 | 6 | 7 | total |
|---|---|---|---|---|---|---|---|---|
| Tableaux « by transfer » | 1 203 | 848 | 471 | 213 | 212 | 209 | 137 | 3 293 |
2 090 de ces tableaux, soit 63 %, en portent au moins deux, et jusqu'à sept. Sur Poképédia, les 323 sections « Par transfert depuis une autre génération » n'écrivent aucune provenance du tout : elles passent une simple liste de noms à la fonction « niveau ».
Rendu proposé
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | II | III | IV | V | VI | VII |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 capacités | |||||||||||
| Aéropique | ![]() | 60EB, DEPS 45, 60, 75LPA | — | 20 | — | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Danse Plumes | ![]() | — | — | 15 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Feinte | ![]() | 60 | — | 20 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Vampirisme | ![]() | 80EB, DEPS 60, 75, 90LPA | 100 % | 10 | — | — | — | — | — | ||
| Mimique | ![]() | — | — | 20 | — | ✔ | — | — | — | — | |
Six colonnes étroites, II à VII, chacune liée vers la sous-page de génération correspondante quand elle existe. Une coche ✔ là où la capacité s'apprenait, un tiret sinon. Le losange ✦ de Vampirisme signale une génération où elle ne s'obtenait que par événement ou capacité spéciale ; c'est l'équivalent du fond rayé de Bulbapedia.
À essayer : cliquer sur l'en-tête d'une colonne de génération. Le tri regroupe les capacités transférables depuis cette génération-là. Une colonne de texte ne permettrait pas cela.
Comment ça s'écrit. Le champ après le nom est une liste :
Aéropique / 3,4,5,6,7. Les chiffres romains sont acceptés
(III, IV), et une étoile marque le cas « événement seulement »
(2*).
Ce qui est automatique. Une génération que personne ne remplit n'a pas de
colonne, même règle que les colonnes de jeu vides du cas D.3. Ici la colonne I
n'apparaît pas, parce que Nostenfer n'existe pas en première génération. Le
paramètre depuis=1 force l'affichage de toutes les colonnes si
besoin, et pokémon= sert seulement à cette page de test : sur une
vraie fiche, le module trouve le nom tout seul.
Cette information existe, elle est vérifiable, et c'est aujourd'hui la seule chose que le tableau de transfert ne dit pas : un lecteur voit qu'une capacité s'obtient par transfert, mais pas depuis où.
Sur écran étroit. Ces colonnes sont nombreuses, jusqu'à sept, et le tableau devient large. Il défile latéralement, comme tous les tableaux d'apprentissage (voir B.3). Aucune ligne de CSS n'est demandée.
C.6 — Le bouton « Masquer » redevient lisible
[modifier]Rendu actuel du module en service
[modifier]Rendu proposé
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| 2 capacités | ||||||
| Flammèche | ![]() | 40 | 100 % | 25 | N.1 | |
| Lance-Flammes | ![]() | 90 | 100 % | 15 | N.30 | |
Le même bouton, en plus grand. Mesuré dans le navigateur sur cette page même :
| Module en service | Proposition | |
|---|---|---|
| Taille du texte du bouton | 11,2 px | 14 px (celle du tableau) |
| Police du bouton | Arial, imposée par le navigateur | celle de la page |
| Zone cliquable | 69 × 14 px | 83 × 26 px |
| Compteur « 2 capacités » | 11,2 px | 12,6 px |
Le font-size:80% s'applique à un texte
déjà réduit : la cellule d'un tableau standard fait 14 px, et non 16. Le bouton
tombait donc à 11,2 px. Sa zone cliquable, haute de 14 px, restait sous le
minimum de 24 × 24 px du critère [https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html
WCAG 2.2 « Target Size (Minimum) »] — ce qui se sent surtout au doigt, sur
téléphone, là où ces tableaux sont justement le plus repliés.
Un détail au passage : un <button> n'hérite pas de la police
de la page ; le navigateur lui impose Arial. Le libellé du bouton était donc,
seul dans tout le tableau, dans une autre police.
C.7 — Pokémon Champions
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP |
|---|---|---|---|---|---|
| 6 capacités | |||||
| Tranche | ![]() | 80 | 100 % | 20 | |
| Abri | ![]() | — | — | 8 | |
| Blockhaus | ![]() | — | — | 12 | |
| Troquenard | ![]() | 35 | 100 % | 16 | |
| Vœu | ![]() | — | — | 8 | |
| Guillotine | ![]() | — | 30 % | 8 | |
Six capacités, et six statistiques qui ne sont pas celles de la génération 9 :
| Capacité | Génération 9 | Pokémon Champions | Ce qui change |
|---|---|---|---|
| Tranche | 70 | 80 | puissance augmentée |
| Troquenard | Plante | Acier | le type |
| Abri | 10 PP | 8 PP | PP réduits |
| Blockhaus | 10 PP | 12 PP | PP augmentés |
| Vœu | 12 PP | 8 PP | PP réduits en version 1.2.0 |
| Guillotine | OHKO, précision — | —, précision 30 % | l'affichage des K.O. en un coup |
Une fonction à part, et voici pourquoi. Pokémon Champions n'a aucune méthode
d'apprentissage : ni niveau, ni CT, ni reproduction, ni donneur. Chaque
Pokémon dispose d'un ensemble de capacités, et le joueur en change pour
250 Points de Victoire. Le tableau n'a donc aucune colonne d'obtention : il
liste, et c'est tout. C'est aussi le choix de Bulbapedia, qui consacre à chaque
espèce une page /Champions learnset.
D'où viennent les statistiques. D'une page de données propre au jeu, Module:Data/Données Capacités Champions, sur le modèle exact des neuf pages de génération. Le module la lit ; s'il ne la trouve pas, il retombe sans erreur sur les valeurs de la génération 9. Le tableau s'affiche, avec les statistiques de la série principale.
Ce que cette page de données contient. 510 capacités, relevées sur
les 231 pages /Champions learnset de Bulbapedia, soit 15 499 lignes
recoupées. Aucune contradiction entre ces 231 pages : chaque capacité y
porte partout les mêmes valeurs.
Une capacité absente de la page de données, parce que le jeu vient de l'ajouter par exemple, s'affiche avec ses valeurs de génération 9. Rien ne casse ; la ligne est simplement à jour d'un cran de retard.
D. Cas limites
[modifier]D.1 — Génération inconnue
[modifier]Module:Apprentissage : génération « 42 » inconnue.
Un message court et lisible.
Ce que fait le module actuel dans le même cas. Il s'arrête sur une erreur Lua brute, du type « attempt to index field '?' (a nil value) », qui n'aide personne à comprendre qu'un paramètre est mal écrit.
Une catégorie à créer. Le message range la page dans « Page avec un paramètre d'apprentissage incorrect », sur le modèle des catégories existantes du wiki. Elle n'existe pas encore : elle apparaîtra en rouge jusqu'à ce que quelqu'un la crée, mais elle listera les pages dès maintenant. C'est la seule création demandée par cette proposition.
Seulement dans l'espace principal. Cette catégorie ne se pose que sur les articles. Une page de test, un brouillon ou une page de discussion ne s'y range pas : la catégorie doit lister des pages à corriger, pas des essais. Si vous lisez cette page hors de l'espace principal, elle n'apparaît donc pas en bas, et c'est le comportement attendu.
D.2 — Nom de capacité inconnu
[modifier]Un lien rouge, des « ?? », et la page rangée dans Catégorie:Page avec un nom de capacité incorrect.
Comportement volontairement inchangé. Une faute de frappe doit rester visible et repérable. C'est précisément parce que cette catégorie est utile qu'il ne faut pas la remplir avec les capacités Ombre du cas C.4.
D.3 — Colonnes de jeu vides
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | SL |
| 2 capacités | ||||||
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.7 | |
Une seule colonne de jeu (SL). Les colonnes USUL et LGPE, sans aucune donnée, disparaissent. Comportement actuel, conservé.
D.4 — masquer=oui
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| 2 capacités | ||||||
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.7 | |
Le tableau arrive replié, avec un bouton « [+] Afficher », et le compteur reste lisible même replié.
D.5 — Un paramètre vide n'est pas un paramètre faux
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| 2 capacités | ||||||
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.7 | |
Un tableau ordinaire de génération 9, la génération par défaut, et pas de message d'erreur.
Un modèle écrit couramment
génération={{{génération|}}}. Quand la page
appelante ne donne rien, le module reçoit une chaîne vide, et non l'absence de
paramètre. La traiter comme une génération inconnue mettrait en erreur, d'un
coup, toutes les pages qui passent par ce modèle.
La même règle vaut pour type=, jeux=,
notes=, identifiant=, méthodes=,
colonne=, prix-unité=, depuis= et
pokémon=.
D.6 — Une ligne sans nom de capacité est ignorée
[modifier]| Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Lieu | Coût |
|---|---|---|---|---|---|---|---|---|---|
| 1 capacité | |||||||||
| Laser Glace | ![]() | 95 | 100 % | 10 | ♥♥ | Colisée Combat | 48 PCo | ||
| 1. Une note que personne n'appelle. | |||||||||
Une seule ligne, « Laser Glace », et le compteur à « 1 capacité ».
La première ligne du code source ne contient qu'un appel de note. Une fois
l'appel retiré, il ne reste aucun nom de capacité. Le module publiait
auparavant un lien vide [[]] et rangeait la page
dans Catégorie:Page avec un nom de capacité incorrect.
Trois autres champs vides suivent la même règle. Un champ « Pré-évolution »
ou « Événement » laissé vide donne aujourd'hui un lien vide
[[]] ; il rend désormais « Inconnue » ou
« Inconnu », comme le fait déjà un champ absent.
Et si toutes les lignes sont écartées ? Le tableau affiche alors la phrase « Ce Pokémon n'apprend aucune capacité… », au lieu d'un corps de tableau vide. C'est plus lisible, mais gardez en tête que la phrase peut être trompeuse : elle dit « aucune capacité » là où le wikitexte en contient, mal écrites. Un tableau vide reste donc le signe qu'il faut relire la source.
D.7 — Un nombre absurde ne casse plus la page
[modifier]Un tableau, pas une « Erreur de script ».
Les nombres reçus des pages sont arrondis et bornés avant emploi. Un
depuis= fractionnaire, négatif, ou plus grand que la génération du
tableau, ne produit plus d'erreur Lua. Auparavant, depuis=2.5
cherchait le chiffre romain de la génération 2,5 et arrêtait toute la page.
D.8 — Un type inconnu ne colore rien, et n'abîme rien
[modifier]Un tableau sans couleur, et rien d'autre.
Ce que fait le module. Le paramètre type= devient une classe
CSS. Le module n'en garde donc que des lettres et des tirets : une espace ou un
guillemet refermerait l'attribut class et déformerait le tableau.
Le vocabulaire, lui, n'est pas restreint aux dix-huit types.
MediaWiki:Gadget-couleurs.css connaît aussi des classes de jeu et de
concours : xd, colosseum, beauté,
robustesse. Une page peut légitimement les demander.
D.9 — La génération 10
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | VV |
| 2 capacités | ||||||
| Charge | ![]() | 40 | 100 % | 35 | N.1 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.7 | |
Un tableau ordinaire, avec la colonne VV. Pas de message d'erreur.
La génération 10 n'a pas de page
Module:Data/Données Capacités, et n'en a pas besoin :
Module:Ressources/donneesCapacite interroge les données sémantiques dès que
la génération dépasse 9. Le module actuel le gère depuis février 2026 ; la
proposition le gère à l'identique.
La seule chose qui manque en génération 10, ce sont les valeurs de tri invisibles du cas B.1 : elles sont lues dans la page de données, qui n'existe pas. Les colonnes se trient alors comme elles le font aujourd'hui, par la collation de MediaWiki. Rien ne casse.
D.10 — Une virgule en trop ne fait plus dire au tableau une fausseté
[modifier]| Capacité | Niveau | |||||
|---|---|---|---|---|---|---|
| Nom | Type | Catégorie | Puissance | Précision | PP | EV |
| 2 capacités | ||||||
| Charge | ![]() | 40 | 100 % | 35 | N.15 | |
| Vampigraine | ![]() | — | 90 % | 10 | N.1 N.5 | |
« N.15 » seul sur la première ligne, et « N.1 » puis « N.5 » sur la seconde. Aucun tiret.
Dans une colonne de niveau, « — » ne veut pas dire « rien à signaler » : il veut dire « ne s'apprend pas dans ce jeu ». Une virgule finale produisait un morceau vide, rendu en « — » ; le tableau affirmait alors une fausseté.








