Formatage incorrect utilisé lors de l'application du formatage « texte préformaté » à une sélection multiligne

Priorité/Gravité :

Moyenne

Plateforme

Système d’exploitation

Windows 11

Navigateur

Google Chrome 139.0.7258.67

Discourse

dee24bd73b158ba97453f20035eabce430a1abcd

Description :

Il existe deux styles de mise en forme de « texte préformaté » :

  • en ligne : à utiliser avec du contenu non littéraire dans un passage littéraire (par exemple, « appelez la fonction foo »), ou une seule ligne courte de contenu non littéraire.
  • bloc : à utiliser avec plusieurs lignes de contenu non littéraire.

L’utilisateur peut adopter l’une des deux approches pour appliquer la mise en forme lors de l’utilisation de l’éditeur :

  • proactive : le mode de mise en forme est activé avant l’ajout du contenu à formater.
  • rétroactive : le contenu est ajouté sous forme non formatée, puis sélectionné et la mise en forme est appliquée à cette sélection.

:bug: Lorsque vous utilisez l’éditeur en mode « éditeur de texte enrichi », l’application de la mise en forme « texte préformaté » de manière rétroactive lorsque plusieurs lignes sont sélectionnées applique le style en ligne. Cela rend le message difficile à lire et le contenu non littéraire difficile à copier (une exigence courante pour le code partagé).

Étapes reproductibles :

  1. Ouvrez l’éditeur.

  2. Positionnez le commutateur de mode de l’éditeur sur la position « éditeur de texte enrichi ».

  3. Ajoutez le contenu suivant au message :

    void setup() {
      // put your setup code here, to run once:
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    
    }
    
  4. Sélectionnez le contenu du message.

  5. Cliquez sur le bouton </> dans la barre d’outils de l’éditeur.

:bug: Chacune des lignes sélectionnées a été formatée individuellement dans le style en ligne :

void setup() {

// put your setup code here, to run once:

}

void loop() {

// put your main code here, to run repeatedly:

}

Le comportement correct aurait été de placer le contenu dans un seul bloc de code :

void setup() {

  // put your setup code here, to run once:



}



void loop() {

  // put your main code here, to run repeatedly:



}

Contexte supplémentaire :

L’éditeur Markdown a le comportement correct de placer le contenu sélectionné dans un bloc de code lorsque la mise en forme « texte préformaté » est appliquée rétroactivement à une sélection de plusieurs lignes.


Je suis en mesure de reproduire le défaut sur try.discourse.org en « mode sans échec » (safe mode).

5 « J'aime »

Merci pour le rapport de bug, je peux le reproduire.

Nous allons travailler sur une correction.

5 « J'aime »

Pouvez-vous tester à nouveau quand vous aurez l’occasion, s’il vous plaît ?

Nous avons apporté quelques améliorations dans cette PR : DEV: make formatCode action more context-aware on rich editor by renato · Pull Request #35362 · discourse/discourse · GitHub

Je confirme que la publication est maintenant formatée comme prévu lorsque j’effectue la procédure décrite dans le rapport.

Merci beaucoup pour la correction @renato, et d’avoir pris le temps de publier une mise à jour ici !

1 « J'aime »