Priorité/Gravité :
Moyenne
Plateforme :
Système d’exploitation
- Windows 11
Navigateur
- Google Chrome 141.0.7390.123
Discourse
fb4bd7951aa6ae8c814df702807c12ccb77bd3fd
Description :
L’"éditeur de texte enrichi" est conçu pour offrir une expérience « WYSIWYG » (ce que vous voyez est ce que vous obtenez), où le contenu affiché dans l’éditeur est rendu exactement tel qu’il apparaîtra dans le message publié.
Le texte copié à partir de certaines sources peut être stocké dans le presse-papiers sous une forme formatée (type text/html) en plus du texte brut (text/plain).
Lorsque du texte est collé dans l’éditeur, si un type de données formaté est présent dans le presse-papiers, ces données sont utilisées à la place du type texte brut.
En raison de la nature minimale de la syntaxe, il est courant que le texte contienne du contenu qui ressemble fortuitement à du balisage Markdown.
Le message publié est rendu différemment de ce qui est affiché dans l’“éditeur de texte enrichi” lorsque le contenu formaté collé contient un certain balisage Markdown fortuit.
Étapes reproductibles :
Balisage de liste fortuit
- Créez un fichier HTML avec le contenu suivant :
<html> <body> <br />- foo </body> </html> - Ouvrez le fichier dans votre navigateur web.
- Copiez le contenu de la page web.
- Ouvrez l’éditeur de messages.
- Mettez l’éditeur en mode « éditeur de texte enrichi ».
- Collez le contenu copié dans l’éditeur.
Le texte a été collé tel quel, plutôt que d’être rendu sous forme de liste :
- foo
- Publiez le message.
Au lieu de correspondre à ce qui était vu dans l’éditeur, le contenu a été rendu comme une liste non ordonnée :
- foo
Balisage de bloc de code fortuit
- Créez un fichier HTML avec le contenu suivant :
<html> <body> <span style="white-space: pre"> foo</span> </body> </html> - Ouvrez le fichier dans votre navigateur web.
- Copiez le contenu de la page web.
- Ouvrez l’éditeur de messages.
- Mettez l’éditeur en mode « éditeur de texte enrichi ».
- Collez le contenu copié dans l’éditeur.
Le texte a été collé tel quel, plutôt que d’être rendu sous forme de bloc de code :
foo
- Publiez le message.
Au lieu de correspondre à ce qui était vu dans l’éditeur, le contenu a été rendu comme un bloc de code :
foo
Balisage de bloc de code fortuit avec balisage BBCode fortuit
- Créez un fichier HTML avec le contenu suivant :
<html> <body> <span style="white-space: pre"> [foo]</span> </body> </html> - Ouvrez le fichier dans votre navigateur web.
- Copiez le contenu de la page web.
- Ouvrez l’éditeur de messages.
- Mettez l’éditeur en mode « éditeur de texte enrichi ».
- Collez le contenu copié dans l’éditeur.
Le texte a été collé tel quel :
[foo]
- Publiez le message.
Au lieu de correspondre à ce qui était vu dans l’éditeur, le contenu a été rendu comme un bloc de code, avec des barres obliques inverses ajoutées avant les crochets :
\[foo\]
Contexte supplémentaire :
Je pense qu’il est correct que l’éditeur de texte enrichi ignore le balisage Markdown apparent présent dans le contenu collé de type « text/html ». Tout formatage intentionnel dans un tel contenu sera défini par des balises HTML, donc le contenu qui ressemble à du Markdown est très probablement fortuit plutôt qu’un véritable balisage. La faute ici est donc que la syntaxe Markdown fortuite est rendue lors de la publication ; et non qu’elle n’est pas rendue dans l’éditeur.
Je suis en mesure de reproduire le défaut sur try.discourse.org en « mode sans échec » (safe mode).