RHJPP Le 14/03/2015 à 17:43 Je pense qu'il ne faudrait pas échapper ce qui n'a pas d'effet. Si j'édite un message dans le même langage que celui que j'ai utilisé pour l'écrire, alors je devrais retrouver ce que j'ai écrit (moins ce qui ne change rien, comme des échappements doubles et retours à la ligne à la fin...).
Sinon, rien à voir, pourquoi des fois, on ne peut pas mettre une vidéo YouTube incluse dans un message en plein écran ?
Zeph Le 15/03/2015 à 11:50 C'est moins évident à implémenter qu'à décrire, à cause de certaines balises qui compliquent tout. Par exemple quand on met un [pre] dans un texte il doit empêcher l'activation de toutes les autres balises jusqu'à ce qu'il soit fermé. À cause de ce genre d'exceptions, la règle n'est pas aussi simple que "une balise a un effet si on a une balise ouvrante et la balise fermante qui lui correspond", aujourd'hui c'est implémenté avec un état dans le parseur, ce qui je trouve assez naze mais je n'ai pas de meilleure solution.
Quand un message est "déparsé", la logique inverse qui correspondrait exactement à ce que fait le parseur est tellement compliquée que je n'ai même pas essayé de l'implémenter (sachant que celle du parseur ne me plait pas, je n'ai pas envie d'y passer trop de temps). Du coup c'est assez naïf : si dans le texte littéral on trouve quelque chose qui pourrait être considéré comme une balise, sachant qu'on vient de la trouver dans un texte littéral c'est qu'elle a été ignorée au moment du parsing pour une raison ou pour une autre, donc dans le doute on l'échappe. Peut-être que c'est inutile car même sans échappement elle n'aurait pas pu être pris en compte, mais cette information est complexe à obtenir.
À mon avis, si j'ai une solution plus simple pour écrire le parseur sans avoir besoin d'un état, alors ça deviendra également facile d'écrire le code qui "déparse" en faisant exactement l'opération inverse.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Zeph Le 15/03/2015 à 14:17 C'est surtout pour des raisons de performance que le texte est conservé après un premier traitement, pas tellement pour supporter plusieurs langages (le fait que cette fonctionnalité soit possible n'est qu'une conséquence). Une fois un post analysé, il est sauvegardé sous une forme qui contient d'une part le texte brut, d'autre part toutes les balises qui ont été repérées avec l'index où elles se situaient et leurs éventuels arguments.
D'un côté ça permet de gagner pas mal de temps à l'affichage puisqu'il n'y a plus besoin de parcourir le post (juste appliquer la liste des balises), d'un autre ça impose de devoir faire cette opération problématique de "déparsage" quand on veut éditer un post. Comme on édite beaucoup moins souvent des posts qu'on ne les affiche, ça reste rentable, mais le code actuel est assez foireux :/

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
RHJPP Le 16/03/2015 à 08:39 Pourquoi ne pas stocker le texte original ? Si ça prend trop de place, ce serait possible de ne le garder que pour une durée limitée.
Zeph Le 16/03/2015 à 09:17 Stocker le texte original n'est pas possible à cause de la taille de la BDD en effet (ça ferait grosso modo x2 sur la taille de la base, vu que la table des posts fait 90% du total). Les stocker temporairement ça ne me semble pas top non plus, ça voudrait dire que l'édition deviendrait non prédictible, je trouve même que ça serait pire que la situation actuelle (où ça foire, mais au moins ça foire de façon attendue et reproductible).

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Tu ne peux pas juste au moment de l'edition d'un port remplacer les \x par leur equivalent?
Je veux dire \ deviens \, \[ devient [ etc..
De toutes maniere le code qui va chercher savoir si un [xx] est une balise valide ou non va devoir tourner dans tous les cas, donc qu'il y ai une balise de plus ou de moins ca ne va pas changer grand chose.
Apres l'avantage du \[xx] c'est qu'on vois tout de suite ou l'on c'est plante dans une balise..

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
ben la ou il y a soucis c'est quand tu met un \ devant un truc parce que la syntaxe est foireuse (genre un #xxx# qui n'existe pas ou un [u] sans son [/u])
Dans ces cas la uniquement, au moment de l’édition, les \ pourraient disparaitre, si c'est bien sur l'utilisateur qui met un \ bien sur il ne faut pas le faire disparaitre

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
Zeph Le 16/03/2015 à 17:20 Sauf qu'actuellement je n'ai aucune idée de si l'utilisateur a mis un \ ou pas, et je m'en fiche un peu du moment que je suis capable de reconstruire un message qui s'affiche exactement de la même façon. Du coup, je ne sauvegarde pas cette info, et je trouverais dommage d'avoir à le faire alors qu'on peut logiquement s'en passer.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)