Ho riscontrato un problema su almeno due diversi siti Discourse in cui, quando seleziono del testo e premo “Cita” per rispondere, vengono utilizzate virgolette intelligenti in un punto che interrompono l’aspetto del mio post. Ecco uno screenshot di un post di esempio che viene visualizzato in modo errato a causa della virgoletta intelligente alla fine della prima riga (all’interno delle parentesi):
Ovviamente una vera correzione dovrebbe essere apportata per un bug, ma nel caso fosse utile nel frattempo menzionerò che una soluzione alternativa potrebbe essere quella di rimuovere le virgolette doppie dall’impostazione del sito Markdown typographer quotation marks, o disabilitare l’impostazione del sito Enable markdown typographer.
Presumo che sia questa funzionalità “Markdown typographer” a causare la sostituzione del carattere virgolette doppie dritto corretto nel tag BBCode con il carattere errato “smart” o “curly quote”.
È una buona intuizione, ma ricordo un problema simile di anni fa e ricordo che abbiamo persino del codice in Discourse che converte “→” per gestire questo caso limite.
@jtbayly questi siti hanno abilitato il nuovo composer?
Un altro utente ha segnalato che se disattivo le Sostituzioni delle virgolette intelligenti nelle Preferenze di Safari → Modifica → Sostituzioni → Virgolettature intelligenti, risolverà il problema.
Non vorrei farlo però. lol. Mi piacciono le virgolette intelligenti quasi sempre.
Penso che questo sia il problema, oltre al fatto che imitiamo l’input dell’utente sull’elemento textarea in questo tipo di aggiunta per evitare di perdere la cronologia di annullamento.
Credo che possa essere “risolto” con un spellcheck="false" sull’elemento, ma ha un ovvio svantaggio.
Ciò che causa il problema è l’incoerenza delle virgolette, funzionerebbe se ci fosse lo stesso stile di virgolette su entrambe le estremità – è possibile utilizzare uno qualsiasi di questi set:
È strano che solo la seconda virgoletta sia stata convertita durante la citazione, mentre entrambi i lati vengono convertiti se lo stesso BBCode viene digitato manualmente.