Pygments invece di highlight.js per l'evidenziazione della sintassi

Per l’evidenziazione della sintassi, Discourse si basa su highlight.js ma Pygments sembra più ricco. Ad esempio, ecco come appare un codice Python:

text = input('Type a number, and its factorial will be printed: ')
n = int(text)

if n < 0:
    raise ValueError('You must enter a non-negative integer')

factorial = 1
for i in range(2, n + 1):
    factorial *= i

print(factorial)

da confrontare con come potrebbe apparire con Pygments:

Questo è più evidente per un blocco di codice LaTeX (purtroppo questa lingua non è abilitata sul forum attuale) ma ecco come appare sul nostro forum Discourse:

da confrontare con come potrebbe apparire con Pygments:

o ancora meglio con un tema/lexer personalizzato:

Sarebbe possibile fare affidamento su Pygments piuttosto che su highlight.js?

1 Mi Piace

Il problema è che è un pacchetto Python e non Javascript :eyes: . Mi chiedo se possa essere convertito :thinking: .

3 Mi Piace

Ah, in effetti, Pygments sembra adatto per siti html statici, non per applicazioni come Discourse.

Forse un tema diverso da highlight.js migliorerebbe anche i colori?

Puoi provarli su Demo - highlight.js e c’è un componente per cambiarlo
Codeblock Theme Picker

2 Mi Piace

In effetti, un altro tema potrebbe fornire colori più belli, ma il problema rimane: il lexer di highlight.js è minimalista.