[spip-dev] Wheels et paragraphes intempestifs

Yop,

un petit souci avec des wheels persos que je n'avais jamais remarqué.

Soit la wheel suivante :

patate:
   match: ['<patate>', '</patate>']
   replace: ['<div class="patate"><p>', '</div>']
   if_str: '<patate>'
   type: str

A l'exécution, ça génère systématiquement un <p></p> avant et après le div inséré.

Vous avez déjà remarqué ça ?

Y'a t'il un spécialiste des wheels dans la salle ? ^^

Hop,

Intéressant, tu peux montrer le code de la wheel ?

Et dans le squelette de l'article, tu utilises juste #TEXTE ?

J'ai testé sur un autre site, je reproduis bien les <p> vide autour.

Je viens de tester avec un squelette tout vide qui contient juste une boucle article et la balise #TEXTE, donc sans header, sans appel à d'autres plugins : idem, des <p> vides autour.

Sur un SPIP tout vide, idem...

Ah ! Une bonne piste.

Je me contentais de déclarer la wheel dans les globales, sans rien d'autre :
$GLOBALS['spip_wheels']['patate'] = array('patate.yaml');

Mais en regardant le code de dame_blanche, cité dans l'autre fil, j'ai testé en utilisant le même code dans le pipeline pre_propre et là ça ne génère plus de <p> en trop :
https://git.spip.net/spip-contrib-extensions/dame_blanche/src/branch/master/dame_pipelines.php

Bon, je ne sais pas trop pourquoi, mais du coup je vais rester là dessus :slight_smile:

Pour info, tu passes par pre_propre aussi ?

Hop,

C'est peut être que propre applique "paragrapher" sur <patate> quand il en reçoit une,
alors que le pipeline transforme le raccourci AVANT propre, si bien que propre n'a plus de <patate> à paragrapher.

Voir aussi https://core.spip.net/issues/2416 a propos de $toujours_paragrapher
JL

C'est peut être que propre applique "paragrapher" sur <patate> quand il en reçoit une,
alors que le pipeline transforme le raccourci AVANT propre, si bien que propre n'a plus de <patate> à paragrapher.

Oui, c'est sûrement la bonne explication.

Voir aussi $GLOBALS['toujours_paragrapher'] et SPIP 3.0 (#2416) · Tickets · spip / spip · GitLab a propos de $toujours_paragrapher

Ah ok, pendant mes tests, je m'étais rendu compte effectivement que cette constante ne faisait plus rien du tout, j'ai pas rêvé donc :slight_smile:

Du coup, |paragrapher - SPIP est peut être à dépublier ?
Ou bien préciser que c'est obsolète ?

Au vu du ticket j'ai l'impression que c'est toujours valable,
mais que ça doit être fait seulement dans le mes_options, comme c'est indiqué,
et pas dynamiquement le temps de l'appel d'une fonction dans un pipeline par exemple.

J'imagine que TextWheel recopie la globale dans une variable statique de classe
en initialisant sa machine à textes mais je n'ai pas vu où dans le source.

JL