Priorità/Gravità:
Bassa Piattaforma:
Chrome 124, Ubuntu 22 Versione:
Discourse v3.3.0.beta2-dev Descrizione:
Discourse esegue l’evidenziazione automatica del codice con hljs, anche quando non è stata specificata alcuna lingua. Questa funzionalità funziona nella visualizzazione normale dell’argomento, ma non quando si visualizza il codice a schermo intero. Passaggi per la riproduzione:
Creare un argomento con un blocco di codice, senza specificare la lingua
System.out.println("hello world");
Visualizzare l’argomento e vedere che hljs ha rilevato una lingua e applicato l’evidenziazione.
Fare clic sul pulsante a schermo intero in alto a destra del blocco di codice.
Vedere che il rilevamento della lingua hljs è fallito e non viene applicata alcuna evidenziazione
Ecco alcuni screenshot in un’unica grande immagine, a causa delle restrizioni per i nuovi utenti .
Grazie per la segnalazione, @oskar1, posso confermare questo bug localmente. (È più difficile riprodurlo su meta perché usiamo text invece di auto come default code lang su meta.)
Ci occuperemo presto di risolvere questo problema.
Hai il nome della classe lang-auto applicato al codice markdown e rimosso automaticamente qui in modo che la libreria possa indovinare la lingua.
Tuttavia, quando vai a schermo intero, lang-auto non è più nell’elemento e hai solo il nome della classe language-<lingua-rilevata-qui>. Pertanto, lang è indefinito.
Una possibile soluzione potrebbe essere qui: se lang-auto non viene trovato, cerca language-<...>.
const m = className.match(/^lang-(.+)$/);
→ const m = className.match(/^`(?:lang|language)-(.+)$/);