« Modèle:FichePNJNL » : différence entre les versions

De Nephilim Wiki
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
<includeonly> {| class="wikitable" style="width:100%; max-width:980px; margin:0.6em 0; border-radius:10px; overflow:hidden;" |- ! colspan="2" style="text-align:left; font-size:120%; background:#f3f3f3; padding:0.6em 0.8em;" {{{nom|''PNJ sans nom''}}} {{#if:{{{type_pnj|}}}|<span style="float:rig
pasted
Ce code mediawiki d'un modèle ne fonctionne pas : peux tu le corriger ?
10 févr.
Diagnosed parser function pipe conflicts in MediaWiki template syntax
Le problème principal est l'utilisation de | (pipe) pour la syntaxe de tableaux à l'intérieur de fonctions parseur ({{#if:...}}, {{#ifeq:...}}). MediaWiki interprète ces | comme des séparateurs de paramètres de la fonction, pas comme du markup de tableau.
La solution : remplacer tous les | de syntaxe tableau qui se trouvent à l'intérieur de fonctions parseur par {{!}}.
Ça concerne :
Le bloc métamorphe (dans un {{#if}})
Tout le second tableau Nephilim (dans un {{#ifeq}})
Synthétisé les modifications du modèle MediaWiki
Voici le modèle corrigé. Le problème fondamental : en MediaWiki, le caractère | à l'intérieur d'une fonction parseur ({{#if:...}}, {{#ifeq:...}}) est interprété comme un séparateur de paramètre, pas comme du markup de tableau. Le tableau se cassait donc complètement.
Les corrections appliquées :
Dans le premier tableau — le bloc métamorphe (qui était dans un {{#if}}), les | et |- de tableau ont été remplacés par {{!}} et {{!}}-.
Dans tout le second tableau (bloc Nephilim) — puisqu'il est entièrement enveloppé dans {{#ifeq:{{{type_pnj|}}}|Nephilim|...}}, chaque élément de syntaxe tableau a été converti :
{| → {{{!}} (ouverture de tableau)
|} → {{!}}} (fermeture de tableau)
|- → {{!}}- (séparateur de ligne)
| style=... → {{!}} style=... (cellule)
Les | à l'intérieur des {{{paramètres|}}} et comme séparateurs des {{#if:}} imbriqués n'ont pas été touchés car ils sont déjà au bon niveau d'imbrication.
Template pnj corrected
TXT
Le modèle ne fonctionne toujours pas. Est-ce que tu pourrais conserver tous les arguments avec une mise en forme simple et me réécrire le code ?
10 févr.
Analyzed parameters and opted for div-based layout simplification
Je vais réécrire le modèle en utilisant des <div> stylisés au lieu de wikitables pour les blocs conditionnels — ça élimine complètement le problème des | dans les fonctions parseur.
Orchestrated code restructuring with simplified formatting
Voici le modèle entièrement réécrit. Le changement d'approche : tout est en <div> avec display:flex au lieu de wikitables ({| ... |}). Ça élimine radicalement le problème — il n'y a plus aucun | de syntaxe tableau qui puisse être confondu avec un séparateur de fonction parseur.
Tous les paramètres d'origine sont conservés, la logique conditionnelle est identique, et le rendu visuel reste très similaire (label à gauche sur 26%, valeur à droite, fond gris clair sur les labels, bordures fines entre les lignes).
Template pnj v2
TXT
<includeonly> <div class="noprint toccolours" style="float:right; padding:0; margin:0 0 .6em .6em; border-width:1px;"> {| class="infobox_v2" cellspacing="3" border="0" style="font-size:90%; line-height:1.15;" | colspan="2" class="entete auteur" style="background-color:#f3f3f3; color:black;" | <s
pasted
J'ai fait réécrire le code mediwiki par une autre IA. Le résultat n'est pas totalement satisfaisant : l'affichage fonctionne en partie mais l'affichage ne me convient pas. Notamment :
* dans une colonne de gauche, le titre de la rubrique est centré au milieu (sur un axe vertical) devant le texte situé à droite. J'aimerais que le titre de la rubrique soit aligné en haut à gauche.
* par ailleurs, lorsque certains arguments sont vierges, iil y a un saut de ligne important entre l'argument précédent et les suivants. Notamment, il y a un  bloc qui s'appelle Kabbale et un bloc sur l'Alchimie : si les arguments sont vides dans l'appel du modèle, alors il y a un espace vide qui est maintenu par le modèle. J'aimearais que ces espaces vides n'apparaissent pas si aucun argument est renseigné.
Voici le code, si tu peux regarder et me proposer une mise en page différente pour le premier point et trouver une solution de condition pour le deuxième point.
Afficher plus
00:34
Diagnostiqué deux problèmes de mise en page et envisagé solutions
Je vais corriger les deux problèmes : l'alignement vertical des labels et les espaces vides laissés par les blocs conditionnels.
Préparé l'analyse du code et des corrections nécessaires
Fixed MediaWiki template: vertical-align:top on headers, removed blank lines inside conditionals that cause paragraph spacing
template_pnj_v3.txt
Let me review what I changed:
Vertical alignment: Added style="vertical-align:top;" to every ! header cell using the {{!}} trick: ! style="vertical-align:top;" {{!}} Label
Empty space issue: The original code had line breaks between the {{#if}} entries inside Kabbale, Alchimie, Magie blocks. In MediaWiki, blank lines get converted to <p> tags which create visible spacing. I've put all the conditional content on a single line (or at least without blank lines between them) so no <p> tags are generated.
Also fixed: The Chutes block had a missing closing }} on the narcose_note conditional. Now I'm verifying the file structure looks correct.
Afficher plus
Presented file
Good, the file is ready. Let me summarize the changes.
Terminé
Voici les deux corrections apportées :
Alignement vertical — Chaque cellule d'en-tête (!) a maintenant style="vertical-align:top;", ce qui aligne le label en haut à gauche au lieu du centre vertical.
Espaces vides — C'était le problème principal : dans le code original, les blocs Kabbale, Alchimie et Magie contenaient des sauts de ligne entre les {{#if}}. MediaWiki interprète ces lignes vides comme des balises <p>, ce qui créait de l'espace visible même quand tous les paramètres étaient vides. J'ai mis tout le contenu conditionnel de chaque cellule sur une seule ligne continue (pas de retour à la ligne entre les {{#if}}). C'est moins lisible dans le code source, mais ça élimine les espaces parasites.
J'ai aussi corrigé au passage une parenthèse fermante manquante (}}) sur le chute_narcose_note dans le bloc Chutes.
Template pnj v3
TXT
<includeonly> <div class="noprint toccolours" style="float:right; padding:0; margin:0 0 .6em .6em; border-width:1px;"> {| class="infobox_v2" cellspacing="3" border="0" style="font-size:90%; line-height:1.15;" | colspan="2" class="entete auteur" style="background-color:#f3f3f3; color:black;" | <s
pasted
Super, ça marche !
Le code a été enrichi avec d'autres blocs qui connaissent le même problème d'alignement en haut à gauche et d'espaces blancs : peux-tu s'il te plaît apporter les corrections au code ? Voici le code complet :
00:49
Identified alignment and spacing issues across multiple template blocks
Je vais corriger les blocs qui ont encore des sauts de ligne entre les {{#if}} — principalement Simulacre, Quêtes, Grades, Savoirs et Ressources occultes.
Identifié la solution pour corriger l'alignement et espaces
Voici le code corrigé. Les blocs modifiés sont ceux qui avaient des sauts de ligne entre les {{#if}} à l'intérieur d'une cellule :
Ress. occultes — les 3 lignes Magie/Kabbale/Alchimie sont maintenant sur une seule ligne
Quêtes — les 5 quêtes sur une seule ligne
Grades — les grades globaux et par quête sur une seule ligne
Savoirs — les 5 savoirs sur une seule ligne
Simulacre — identité, âge, Ka-Soleil, degré et les 5 vécus sur une seule ligne (c'était le bloc le plus problématique, il avait aussi une ligne vide entre simulacre_degre et simulacre_vecu1)
Le principe est toujours le même : en MediaWiki, une ligne vide entre deux {{#if}} dans une cellule de tableau génère un <p> — donc un espace visible même si les paramètres sont vides. En mettant tout sur une seule ligne, les <br /> conditionnels gèrent les retours à la ligne uniquement quand il y a du contenu.
Template pnj v4
TXT
En termes d'alignement, je vois que, deuxième ligne, dans la colonne de droite, la valeur metamorphe et metamorphe_niveau sont un peu plus bas que le titre de la rubrique à gauche '''Métamorphe'''. En effet, le résultat à l'affichage est effectivement : Métamorphe (en grais) et juste à droite en colonne 2 : Satyre— Degré '''6''', sauf que Satyre— Degré '''6''' est légèrement plus bas que Métamorphe. Comment aligne le tout vers le haut ?
00:54
Diagnosed vertical alignment issue and devised systematic CSS fix
Le problème : le vertical-align:top est sur la cellule d'en-tête (colonne gauche) mais pas sur la cellule de données (colonne droite). Il faut l'ajouter aux deux côtés. Le plus simple est de le mettre globalement sur le tableau pour que toutes les cellules héritent.
Reconsidered CSS cascade behavior and identified proper cell alignment solution
Hmm, en fait vertical-align sur le <table> ne cascade pas aux cellules en CSS. Il faut l'appliquer directement sur chaque cellule de données. Laissez-moi corriger proprement en l'ajoutant à toutes les cellules td.
Reconnut l'alignement vertical d'éléments de mise en page
La correction est simple mais il fallait l'appliquer partout : vertical-align:top sur le <table> ne cascade pas aux cellules en CSS. Il faut le mettre directement sur chaque <td>.
Concrètement, chaque cellule de données est passée de {{!}} {{!}} à {{!}} style="vertical-align:top;" {{!}} — ce qui correspond en wikisyntaxe à | style="vertical-align:top;" |. Ça s'applique maintenant aux deux colonnes de chaque ligne, donc le label et la valeur seront toujours alignés en haut ensemble.
Template pnj v5
TXT
La correction ne fonctionne pas. Peux-tu traiter la cellule qui affiche la valeur de metamorphe= et de |metamorphe_niveau= comme les autres cellules plus loin ?
00:57
Identifié problème d'alignement et envisagé correction de formatage
Le problème : il y a un saut de ligne entre {{!}} style="vertical-align:top;" {{!}} et {{{metamorphe|}}}. MediaWiki l'interprète comme un espace supplémentaire. Les autres cellules ont le contenu sur la même ligne.
Reformaté les cellules pour harmoniser leur présentation
Le contenu {{{metamorphe|}}}... était sur la ligne suivante du marqueur de cellule — ce retour à la ligne créait un décalage vertical. Maintenant tout est sur la même ligne, comme les autres cellules du modèle.
Template pnj v5
TXT
Super, ça a corrigé le problème !
00:59
Pensant à reconnaître un message de confirmation sans demande d'action
Parfait, content que ce soit réglé ! N'hésite pas si tu as d'autres ajustements à faire sur le modèle.
J'aimerais enrichir le code quelques éléments :
* sur la ligne que tu viens de corriger, il me manque l'affichage d'un argument : celui de type_neph
En effet, dans une page de test qui appelle le modèle du code, les valeurs des arguments sont les suivantes :
|nom=Zagrim
|type_pnj=Nephilim
|type_neph=Faërim
|metamorphe=Satyre
|metamorphe_niveau=6
|metamorphe_details=
Et j'obtiens actuellement comme résultat :
Métamorphe            Satyre— Degré 6
J'aimerais que le résultat soit (avec les espaces et virgules qui vont bien), mais en s'assurant que tout ceci ne s'affiche que si les valeurs sont renseignés sur les arguments correspondant (sinon, je ne que rien ne s'affiche à la place de ces arguments) :
Métamorphe            Faërim, Satyre — Degré 6
Afficher plus
01:03
Identifié la nécessité d'intégrer type_neph à la condition d'affichage
Il faut aussi ajouter type_neph dans la condition d'affichage de la ligne, pour qu'elle apparaisse même si seul type_neph est renseigné :
Orchestrated conditional display logic pour arguments multiples
Deux modifications :
La cellule affiche maintenant type_neph en premier, puis une virgule + metamorphe seulement si les deux sont renseignés, puis le degré et les détails comme avant.
La condition d'affichage de la ligne inclut désormais type_neph, donc la ligne apparaît aussi si seul ce champ est rempli.
Avec tes valeurs de test, ça donnera : Métamorphe → Faërim, Satyre — Degré 6
Template pnj v5
TXT
Claude est une IA et peut faire des erreurs. Veuillez vérifier les réponses.
Template pnj v5 · TXT
Copier
<includeonly>
<includeonly>
<div class="noprint toccolours" style="float:right; padding:0; margin:0 0 .6em .6em; border-width:1px;">
<div class="noprint toccolours" style="float:right; padding:0; margin:0 0 .6em .6em; border-width:1px;">

Version du 12 février 2026 à 02:05


{{FichePNJNL
|nom=
|type_pnj=
|resume=
|description=

|type_neph=
|metamorphe=
|metamorphe_niveau=
|metamorphe_details=

|ka_feu=
|ka_air=
|ka_eau=
|ka_terre=
|ka_lune=

|vecus=

|arcane_adoption=
|arcane_adoption_degre=
|arcane_grade=

|chute_khaiba_degre=
|chute_khaiba_type=
|chute_khaiba_note=
|chute_ombre_degre=
|chute_ombre_note=
|chute_narcose_degre=
|chute_narcose_lien=
|chute_narcose_note=

|sc_occultes=

|magie_grade=
|magie_voie=
|basse_magie=
|haute_magie=
|grand_secret=

|kabbale_grade=
|kabbale_monde=
|kabbale_malkuth=
|kabbale_yesod=
|kabbale_hod=
|kabbale_netzach=
|kabbale_tiphereth=
|kabbale_geburah=
|kabbale_chesed=
|kabbale_binah=
|kabbale_hochmah=
|kabbale_kether=

|alchimie_grade=
|alchimie_voie=
|oeuvre_noir=
|oeuvre_blanc=
|grand_oeuvre=

|ress_magie=
|ress_kabbale=
|ress_alchimie=

|quete_1=
|quete_1_degre=
|quete_2=
|quete_2_degre=
|quete_3=
|quete_3_degre=
|quete_4=
|quete_4_degre=
|quete_5=
|quete_5_degre=

|quete_grade=
|quete_grade_1=
|quete_grade_2=
|quete_grade_3=
|quete_grade_4=
|quete_grade_5=

|savoirs_esoteriques=
|savoir_1=
|savoir_1_degre=
|savoir_2=
|savoir_2_degre=
|savoir_3=
|savoir_3_degre=
|savoir_4=
|savoir_4_degre=
|savoir_5=
|savoir_5_degre=

|reseaux=
|ressources=

|simulacre_identite=
|simulacre_age=
|ka_soleil=
|simulacre_degre=
|simulacre_vecu1=
|simulacre_vecu1_degre=
|simulacre_vecu2=
|simulacre_vecu2_degre=
|simulacre_vecu3=
|simulacre_vecu3_degre=
|simulacre_vecu4=
|simulacre_vecu4_degre=
|simulacre_vecu5=
|simulacre_vecu5_degre=

|possessions=
|stase_objet=
|stase_degre=
}}