Formattazione errata utilizzata quando la formattazione "testo preformattato" viene applicata a una selezione multilinea

Priorità/Gravità:

Media

Piattaforma

Sistema Operativo

Windows 11

Browser

Google Chrome 139.0.7258.67

Discourse

dee24bd73b158ba97453f20035eabce430a1abcd

Descrizione:

Esistono due stili di formattazione del “testo preformattato”:

  • inline: da utilizzare con contenuti non di prosa all’interno di un passaggio di prosa (ad esempio, “chiamare la funzione foo”), o una singola riga breve di contenuto non di prosa.
  • block: da utilizzare con più righe di contenuto non di prosa

L’utente può adottare uno dei due approcci per applicare la formattazione quando utilizza il composer:

  • proattivo: la modalità di formattazione viene attivata/disattivata prima di aggiungere il contenuto da formattare
  • retroattivo: il contenuto viene aggiunto in forma non formattata, quindi selezionato e la formattazione viene applicata a tale selezione

:bug: Quando si utilizza il composer in modalità “editor di testo rich text”, l’applicazione della formattazione “testo preformattato” retroattivamente quando vengono selezionate più righe applica lo stile inline. Ciò rende il post difficile da leggere e il contenuto non di prosa difficile da copiare (un requisito comune per il codice condiviso).

Passaggi per la riproduzione:

  1. Aprire il composer.

  2. Posizionare l’interruttore della modalità editor sulla posizione “editor di testo rich text”.

  3. Aggiungere il seguente contenuto al post:

    void setup() {
      // put your setup code here, to run once:
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    
    }
    
  4. Selezionare il contenuto del post.

  5. Fare clic sul pulsante </> nella barra degli strumenti del composer.

:bug: Ciascuna delle righe selezionate è stata formattata individualmente nello stile inline:

void setup() {

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

}

void loop() {

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

}

Il comportamento corretto sarebbe stato inserire il contenuto in un singolo blocco di codice:

void setup() {

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



}



void loop() {

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



}

Contesto aggiuntivo

L’editor Markdown ha il comportamento corretto di inserire il contenuto selezionato in un blocco di codice quando la formattazione “testo preformattato” viene applicata retroattivamente a una selezione multilinea.


Sono in grado di riprodurre il difetto su try.discourse.org in “modalità sicura”.

5 Mi Piace

Grazie per la segnalazione del bug, riesco a riprodurlo.

Lavoreremo a una soluzione.

5 Mi Piace

Puoi testare di nuovo quando hai un attimo, per favore?

Abbiamo apportato alcuni miglioramenti in questa PR: DEV: make formatCode action more context-aware on rich editor by renato · Pull Request #35362 · discourse/discourse · GitHub

Confermo che il post è ora formattato come previsto quando eseguo la procedura fornita nel report.

Grazie mille per la correzione @renato, e per aver dedicato del tempo a pubblicare un aggiornamento qui!

1 Mi Piace