[spip-dev] SPIP commence a insérer des <p> gênants

Bonjour,

Avec SPIP 2.0.0 beta2 SVN [13053] (et avec des révisions avant celle-ci aussi), on commence à avoir des <p> insérés là où il n'y en avait pas avant.

Parfois c'est facile à supprimer -- en mettant #CHAPO* au lieu de #CHAPO, par exemple.

Mais actuellement j'essaie d'insérer un modèle dont le code commence :
<div class='ajax'> ...

et SPIP persiste à coller le code dans la page :

<p><div class='ajax'> ...

ce qui n'est pas compatible XHTML.

C'est un bug, ou il y a quelue chose à faire ?

merci,
Paolo

Cédric

Bonjour,

Avec SPIP 2.0.0 beta2 SVN [13053] (et avec des révisions avant celle-ci aussi), on commence à avoir des <p> insérés là où il n'y en avait pas avant.

Parfois c'est facile à supprimer -- en mettant #CHAPO* au lieu de #CHAPO, par exemple.

par defaut spip paragraphe maintenant tout

si tu veux l'eviter fait
[(#CHAPO|PtoBR)]

ou mais la global tout_paragrapher a false

Mais actuellement j'essaie d'insérer un modèle dont le code commence :
<div class='ajax'> ...

et SPIP persiste à coller le code dans la page :

<p><div class='ajax'> ...

ce qui n'est pas compatible XHTML.

C'est un bug, ou il y a quelue chose à faire ?

on dirait bien un bug
les modeles en ajax n'ont pas ete super-super testés ...
Cédric

si tu veux l'eviter fait
[(#CHAPO|PtoBR)]

Ce n'est pas très bon dans un
<option value="xxx">#CHAPO</option>

C'est vrai que cela ne provoque pas d'erreur, mais cela rend l'HTML moins lisible. C'est pour ça que je préfère #CHAPO*.

ou mais la global tout_paragrapher a false

Même avec $tout_paragrapher=false; dans mes options, SPIP continue a les insérer

Mais actuellement j'essaie d'insérer un modèle dont le code commence :
<div class='ajax'> ...

Insérer le formulaire de cette façon :
<div class='ajax'>
[(#FORMULAIRE_CDS)]
</div>

me permet d'éviter l'effet <p><div>

mais

mettre <formulaire|cds> dans le texte d'un article me donne <p><div> à chaque coup.

Paolo

alors c'est un gros bug du moteur typo/propre/modeles, qui s'emmelle les pinceaux depuis que l'ordre des appels a été changé.
Si le bug est avéré et confirmé, c'est du lourd ...

Cédric

Si le bug est avéré et confirmé, c'est du lourd ...

Tu me fais peur, Cédric !

mettre <formulaire|cds> dans le texte d'un article me donne <p><div> à chaque coup.

En tout cas, avec un SPIP 2.0.0 beta2 SVN [13053] (avec $tout_paragrapher=false; dans mes_options.php et tous plugins désactivés) j'ai un article dont le texte contient seulement ce raccourci :

<formulaire|test2>

et l'HTML qui en résulte est :

<div class="texte"><p><div class="ajax">
<form action='en_article7618.html' method='post'>
....

Paolo

c'est
$toujours_paragrapher
qu'il faut écrire.

Committo,Ergo:Sum

Committo,Ergo:sum wrote:

c'est
$toujours_paragrapher
qu'il faut écrire.

Ah oui, en effet. Mais de toute façon, cela ne change rien pour ce problème.

Paolo

Chez moi ça change.

Committo,Ergo:Sum

Committo,Ergo:sum wrote:

Chez moi ça change.

- SPIP 2.0.0 beta2 SVN [13061]; aucun plugin

- $toujours_paragrapher=false;

- Dans le texte de l'article :
{{{Test}}}
<formulaire|test2>

- début du fichier /squelettes/formulaires/test2.html :
<div class="ajax">

- rendu dans la page publiée :

<h3 class="spip">Test</h3>
<p><div class="ajax">

Paolo

Cédric

Committo,Ergo:sum wrote:

Chez moi ça change.

- SPIP 2.0.0 beta2 SVN [13061]; aucun plugin

- $toujours_paragrapher=false;

oui, cela ne va changer que le cas particulier d'un texte d'une ligne sans paragraphes.
Dès que le texte est paragraphé, on retombe sur le bug, qui doit être que l'on place les <p> *avant* d'avoir expansé les modèles, sans savoir ce qu'ils peuvent contenir...
On doit avoir le meme bug avec un modele simple contenant des ul ou des div

Ce que je ne comprends pas c'est que cet ordre était déjà celui de la 1.9.2, mais les modèles n'y étaient pas aussi développé, alors je ne sais pas avoir quoi comparer le comportement actuel.

Ce qui est sûr c'est que l'insertion d'un "<p>" a lieu ligne 922 de inc/texte, et l'appel à paragrapher qui suit en remet une couche.
Ce qui aurait été bien c'est de dire pour chaque regexp de spip_raccourcis_typo quelle est leur intention, sinon c'est impossible d'avoir une vue claire de ce qui se passe. Idéalement on devrait pouvoir spécifier par un seul tableau les règles de Wiki, on en est loin.

Committo,Ergo:Sum

Eh avant de vous lancer dans de grandes conséidérations il faudrait
tester... Il faudrait voir précisément le modèle de Paolo car quand je
fais un modèle

      <div>TOTO</div>

ça marche très bien sans paragraphe autour

Fil wrote:

Eh avant de vous lancer dans de grandes considérations il faudrait
tester... Il faudrait voir précisément le modèle de Paolo car quand je
fais un modèle
      <div>TOTO</div>
ça marche très bien sans paragraphe autour

OK :wink: Ayant testé un peu, il semble que le problème touche les raccourcis <formulaire>. Car si je mets ceci dans un article :

{{{Test 2}}}
<formulaire|test2>

{{{Test 3}}}
<test3>

où /formulaires/test2.html et modeles/test.html contiennent chacun le code :

<div>
Hello!
</div>

Le rendu dans la page publique est :

<h3 class="spip">Test 2</h3>

<p><div>
Hello!
</div>
</p>

<h3 class="spip">Test 3</h3>
<div>
Hello!
</div>

Paolo

Avec ça c'est bon. Merci !
Paolo

bon, le modele formulaire a ceci de particulier qu'il ne produit que du php, donc paragrapher ne sait pas par avance le resultat que cela va produire.
C'est un cas particulier, je ne suis pas pour alourdir le process du moteur typo.
J'ai donc rusé en incluant le php du modele dans un div, ce qui permet au moteur de retomber sur ses pieds.
c'est dans http://trac.rezo.net/trac/spip/changeset/13064

Cédric