Pygments plutôt que highlight.js pour la coloration syntaxique

Pour la coloration syntaxique, Discourse s’appuie sur highlight.js, mais Pygments semble plus riche. Par exemple, voici à quoi ressemble un code 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)

à comparer avec ce à quoi il pourrait ressembler avec Pygments:

Ceci est plus visible pour un bloc de code LaTeX (malheureusement, ce langage n’est pas activé sur le forum actuel) mais voici à quoi il ressemble sur notre forum Discourse :

à comparer avec ce à quoi il pourrait ressembler avec Pygments:

ou encore mieux avec un thème/lexer personnalisé :

Serait-il possible de s’appuyer sur Pygments plutôt que sur highlight.js ?

1 « J'aime »

Le problème, c’est que c’est un paquet Python et non un paquet Javascript :eyes: . Je me demande si cela peut être converti :thinking: .

3 « J'aime »

Ah, en effet, Pygments semble adapté aux sites html statiques, et non aux applications telles que Discourse.

Peut-être qu’un thème différent de highlight.js améliorerait également les couleurs ?

Vous pouvez les essayer sur Demo - highlight.js et il existe un composant pour le changer
Codeblock Theme Picker

2 « J'aime »

En effet, un autre thème pourrait fournir de plus belles couleurs, mais le problème demeure : le lexer de highlight.js est minimaliste.