Priorità/Gravità:
Media
Piattaforma:
Sistema Operativo
- Windows 11
Browser
- Google Chrome 139.0.7258.128
Discourse
028c90dd5e7a2799ea5b6e963f71fc0222681943
Descrizione:
Il testo copiato da alcune origini può essere memorizzato negli appunti in formato formattato (tipo text/html) oltre al testo normale (tipo text/plain).
Quando il testo viene incollato nel compositore, se è presente un tipo di dati formattato negli appunti, questo dato viene utilizzato al posto del tipo di testo normale.
Per impostazione predefinita, lo spazio bianco nei contenuti HTML viene compresso. Questo comportamento può essere controllato tramite la proprietà CSS white-space.
Incollando nel compositore quando si è in modalità editor di testo avanzato, la proprietà CSS white-space dei dati degli appunti non viene rispettata. Ciò si traduce in uno spazio bianco sempre compresso nel contenuto incollato. Nei casi in cui il contenuto di origine aveva una proprietà white-space impostata sul valore pre, ciò si traduce in un contenuto incollato difficile da leggere e errato nei casi in cui lo spazio bianco del contenuto di origine aveva un significato tecnico.
Passaggi riproducibili:
- Creare un file HTML con il seguente contenuto:
<html> <body> <span style="white-space: pre">foo bar </span> </body> </html> - Aprire il file nel browser web.
Notare che lo spazio bianco del contenuto della pagina non viene compresso:foo bar - Copiare il contenuto della pagina web.
- Aprire il compositore di post.
- Mettere il compositore in modalità “editor di testo avanzato”.
- Incollare il contenuto copiato.
Invece di avere lo stesso formato del contenuto copiato, lo spazio bianco del contenuto incollato è stato compresso:
foo bar
Contesto aggiuntivo:
Vedo che ProseMirror supporta white-space: pre:
Il difetto non si verifica quando si utilizza il compositore in modalità “editor Markdown”.
Il difetto non si verifica se il contenuto viene incollato in un blocco di codice invece che nella normale modalità di editor. È vero che in molti casi sarebbe più appropriato inserire il contenuto che utilizza qualcosa come white-space: pre in un blocco di codice. Tuttavia, è abbastanza comune che gli utenti applichino la formattazione retroattivamente aggiungendo il contenuto al compositore, selezionando il contenuto, quindi utilizzando la barra degli strumenti del compositore per applicare la formattazione (al contrario dell’approccio alternativo di attivare un blocco di codice prima di aggiungere il contenuto).
Ho trovato questo uno strumento utile per esaminare i dati grezzi del contenuto degli appunti:
Sono in grado di riprodurre il difetto su try.discourse.org in “modalità sicura”.
