Evidenziazione automatica del codice non funziona nella visualizzazione del codice a schermo intero

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:

  1. Creare un argomento con un blocco di codice, senza specificare la lingua
System.out.println("hello world");
  1. Visualizzare l’argomento e vedere che hljs ha rilevato una lingua e applicato l’evidenziazione.
  2. Fare clic sul pulsante a schermo intero in alto a destra del blocco di codice.
  3. 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 :confused:.

3 Mi Piace

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.

3 Mi Piace

Penso che il problema sia qui :thinking: :

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/highlight-syntax.js#L36-L52

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)-(.+)$/);

1 Mi Piace

Sono felice di rivedere una PR se desideri inviarne una @Arkshine, hai già fatto gran parte del lavoro :wink:.

3 Mi Piace

Ho creato una PR :+1: . Spero che i test siano abbastanza buoni!

2 Mi Piace

Grazie @Arkshine, la correzione sembra ottima, la unirò una volta che i test saranno superati in CI.

3 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 18 ore. Non sono più ammesse nuove risposte.