Configura quali linguaggi di programmazione sono disponibili per l'evidenziazione della sintassi

:bookmark: Questa guida spiega come configurare quali linguaggi di programmazione sono disponibili per l’evidenziazione della sintassi in Discourse.

:raising_hands: Livello utente richiesto: Amministratore

L’evidenziazione della sintassi migliora la leggibilità nei blocchi di codice applicando la formattazione in base al linguaggio di programmazione. Puoi personalizzare i linguaggi disponibili per l’evidenziazione della sintassi in Discourse.

Configurazione dell’impostazione del sito highlighted_languages

Per configurare l’elenco dei linguaggi di programmazione per l’evidenziazione della sintassi:

  1. Accedi al pannello Admin.
  2. Vai su Impostazioni.
  3. Cerca l’impostazione del sito highlighted_languages.

In questa impostazione, puoi definire quali linguaggi saranno disponibili per l’evidenziazione della sintassi. Inserisci i nomi dei linguaggi che desideri supportare, separati da virgole.

Aggiungere il supporto per linguaggi aggiuntivi

Se il linguaggio desiderato non è incluso in highlight.js, devi aggiungerlo manualmente. Di seguito sono riportati i passaggi per raggiungere questo obiettivo:

  1. Individua un modulo per il tuo linguaggio: Trova un modulo highlight.js che supporti il linguaggio che desideri aggiungere. Ad esempio, per aggiungere Solidity, puoi utilizzare il pacchetto highlightjs-solidity.
    • Solidity: https://github.com/highlightjs/highlightjs-solidity
    • Supercollider: https://github.com/highlightjs/highlightjs-supercollider
  2. Integra il modulo utilizzando un componente del tema:
    • Ottieni lo script HighlightJS per il linguaggio desiderato.
    • Crea un nuovo componente del tema in Discourse.
    • Aggiungi lo script al componente del tema per garantire che si integri correttamente.
7 Mi Piace

Voglio aggiungere Solidity, un linguaggio che non è incluso in highlight.js. È fornito in questo pacchetto: GitHub - highlightjs/highlightjs-solidity

Non sono sicuro di come fare. L’ho aggiunto alle impostazioni di Discourse. Lo troverà per me e si occuperà di tutto, o devo mettere questo pacchetto JavaScript aggiuntivo da qualche parte? Apprezzerei una guida :slight_smile:

1 Mi Piace

Sono interessato anche a questo, per supportare l’evidenziazione della sintassi del linguaggio supercollider tramite GitHub - highlightjs/highlightjs-supercollider

1 Mi Piace

Bump. Se vogliamo aggiungere il supporto per l’evidenziazione della sintassi per lingue non ancora presenti in highlight.js, c’è un modo per aggiungerla direttamente, ad esempio tramite un componente tematico, o dobbiamo chiedere alle persone di highlight.js di accettare una PR con la sintassi aggiuntiva?

Chiedo perché esiste una coppia di linguaggi piuttosto esoterica, Archetype Description Language (ADL) e Archetype Query Language (AQL), per i quali i proprietari di discourse.openehr.org vorrebbero che la sintassi fosse evidenziabile. Hanno la capacità tecnica di creare un parser/evidenziatore, devono solo sapere come farlo funzionare in Discourse.

3 Mi Piace

È assolutamente fattibile come componente del tema! Una volta che avrai pronto lo script HighlightJS, contattami qui e potrò aiutarti a creare il Theme component.

3 Mi Piace

Grazie @Falco! Costruirò lo script e ti farò sapere quando sarà pronto.

3 Mi Piace

Nelle ultime due settimane, ho notato che l’evidenziazione del codice non sembra funzionare quando dovrebbe. Vedi qui un esempio. Quando specifico una lingua (java nel caso sopra), vengono applicati i colori.

Ecco un altro esempio per XML:
https://developer.sailpoint.com/discuss/t/get-application-roles-as-well-as-search-for-the-roles/78194?u=derek_putnam

Abbiamo dozzine di lingue da rilevare. Vedo che il sottotesto sotto questa impostazione dice che troppe possono causare prestazioni scadenti, ma non credo che abbiamo aggiunto nulla di recente.