Dotclear

Ticket #1029 (closed defect: fixed)

Opened 15 years ago

Last modified 13 years ago

Wiki : Pb espace en début de commentaire = <pre>

Reported by: Mirovinben Owned by: xave
Priority: normal Milestone: 2.5
Component: module:core Version: 2.1
Severity: normal Keywords:
Cc:

Description

Il n'est pas rare que des commentateurs fassent précéder le premier mot d'une d'une ligne par un espace. De même, le système d'insertion d'un émoticon en début de ligne d'un commentaire fait commencer la ligne par un espace.

Or la syntaxe wiki considère toute ligne commençant par un espace comme texte préformaté et traduit cette ligne en Html par <pre>...</pre>. Effet parfois surprenant, pouvant même rendre la page invalide dans certains cas.

Ma suggestion : remplacer pour les commentaires (et seulement pour eux) dans le "parseur" wiki l'espace par un autre caractère ou combinaison de caractères ne risquant pas de se trouver trop facilement là...

Change History

comment:1 follow-ups: ↓ 4 ↓ 14 Changed 15 years ago by kozlika

Moui, pas trop d'accord, ça va embrouiller plutôt qu'autre chose pour ceux qui connaissent la syntaxe wiki. En revanche on pourrait imaginer ajouter des options pour activer ou désactiver individuellement une balise si ça tente un dév ?

comment:2 in reply to: ↑ description Changed 15 years ago by Moe

Replying to Mirovinben:

Or la syntaxe wiki considère toute ligne commençant par un espace comme texte préformaté et traduit cette ligne en Html par <pre>...</pre>. Effet parfois surprenant, pouvant même rendre la page invalide dans certains cas.

La syntaxe Wiki est prévue pour ne pas générer d'erreur, tu as peut-être mis le doigt sur un bug. Peux-tu donner un exemple de commentaire qui rend la page invalide ?

comment:3 Changed 15 years ago by kozlika

Moe, ça ne rend pas la page invalide, ça fait exactement ce que ça doit faire : traiter une ligne commençant par une espace comme du texte préformaté et non un paragraphe de texte courant. Le souci c'est que certains commentateurs ne le savent pas et tapent des espaces en début de ligne pour faire (croient-ils) un joli retrait de début d'alinéa.

comment:4 in reply to: ↑ 1 Changed 15 years ago by Moe

Replying to kozlika:

En revanche on pourrait imaginer ajouter des options pour activer ou désactiver individuellement une balise si ça tente un dév ?

On peut supprimer le <pre>…</pre> depuis le fichier _public.php du thème :

$core->addBehavior('coreInitWikiComment',
	array('MirovinbenRemovePre','coreInitWikiComment'));

class MirovinbenRemovePre
{
	public static function coreInitWikiComment($wiki2xhtml)
	{
		$wiki2xhtml->setOpt('active_pre',0);
	}
}

comment:5 follow-up: ↓ 6 Changed 15 years ago by Mirovinben

Réponse à Moe pour rendre une page invalide à cause d'un commentaire :

-1- Je saisi "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed sit amet pede. Nunc vitae ligula eu lectus elementum pharetra."

-2- je fais un retour chariot après "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."

-3- j'ajoute un smiley (avec un espace devant) : " :-)"

-4- je refait un retour chariot après le smiley

-5- je prévisualise et envoie.

Si on regarde le résulat en Html on a l'image du smiley entre <pre> et </pre> :

<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p> <pre>8-)</pre> <p>Sed sit amet pede. Nunc vitae ligula eu lectus elementum pharetra.</p>

Et le w3c me dit...

document type does not allow element "img" here; missing one of "ins", "del", "a", "span", "bdo", "tt", "i", "b", "big", "small", "em", "strong", "dfn", "code", "q", "samp", "kbd", "var", "cite", "abbr", "acronym", "sub", "sup", "label", "button" start-tag

Ce pb n'est pas nouveau. Juste que je viens de m'en rappeler.

comment:6 in reply to: ↑ 5 Changed 15 years ago by Moe

Replying to Mirovinben:

Réponse à Moe pour rendre une page invalide à cause d'un commentaire :

J'ai pu reproduire le bug. Je te suggère de créer un nouveau ticket.

comment:7 Changed 15 years ago by kozlika

Désolée Moe, c'est moi qui n'avais pas tout compris ! (court se cacher)

comment:8 follow-up: ↓ 9 Changed 15 years ago by Mirovinben

Moe, crois-tu qu'il soit indispensable de créer un nouveau ticket ? Celui-ci ne suffit-il pas (signalement, mode opératoire pour produire le bug dans un commentaire) ?

comment:9 in reply to: ↑ 8 Changed 15 years ago by Moe

Replying to kozlika:

Désolée Moe, c'est moi qui n'avais pas tout compris ! (court se cacher)

Pas de problème. :)

Replying to Mirovinben:

Moe, crois-tu qu'il soit indispensable de créer un nouveau ticket ? Celui-ci ne suffit-il pas (signalement, mode opératoire pour produire le bug dans un commentaire) ?

Si on met de côté la suggestion de supprimer les <pre> des commentaires, à mon avis tu peux te passer de créer un autre ticket.

comment:10 follow-up: ↓ 11 Changed 15 years ago by Mirovinben

Moe, je n'avais aucunement l'intention de supprimer les <pre> des commentaires mais juste faire en sorte qu'il ne soit pas aussi facile de les générer via le wiki.

M'enfin, c'était juste une idée... au départ. ;)

comment:11 in reply to: ↑ 10 Changed 15 years ago by Moe

Replying to Mirovinben:

Moe, je n'avais aucunement l'intention de supprimer les <pre> des commentaires mais juste faire en sorte qu'il ne soit pas aussi facile de les générer via le wiki.

D'après ce que je vois dans le code, tu n'as pas le choix, soit tu désactives cette balise avec le code donné au-dessus, soit tu la gardes. Je ne vois pas comment modifier depuis Dotclear cette expression régulière qui est définie dans les fichiers de Clearbricks.

comment:12 Changed 15 years ago by xave

  • Milestone changed from 2.2 to 2.3

comment:13 Changed 14 years ago by bruno

  • Milestone 2.3 deleted

comment:14 in reply to: ↑ 1 Changed 13 years ago by franck

Replying to kozlika:

Moui, pas trop d'accord, ça va embrouiller plutôt qu'autre chose pour ceux qui connaissent la syntaxe wiki. En revanche on pourrait imaginer ajouter des options pour activer ou désactiver individuellement une balise si ça tente un dév ?

Il existe maintenant un plugin commentsWikibar qui permet d'activer et de désactiver tout ou partie des boutons de formattage, ça règle en partie le problème.

comment:15 Changed 13 years ago by franck

Va falloir revoir la fonction smiliesDefinition (lib.tpl.context.php) pour qu'il ne transforme pas les smileys dans les balises <pre>…</pre> (et peut-être <code>…</code>, à vérifier).

comment:16 Changed 13 years ago by franck

  • Type changed from idea to defect

comment:17 Changed 13 years ago by franck

  • Milestone set to 2.5

comment:18 Changed 13 years ago by franck <carnet.franck.paul@…>

  • Status changed from new to closed
  • Resolution set to fixed

(In [8d003494d2f5]) Smileys are not more converted in image in pre,code,kbd,script and math contents, fixes #1029

Note: See TracTickets for help on using tickets.

Sites map