Pygments en lugar de highlight.js para el resaltado de sintaxis

Para el resaltado de sintaxis, Discourse se basa en highlight.js, pero Pygments parece más rico. Por ejemplo, así se ve un código 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)

para ser comparado con cómo podría verse con Pygments:

Esto es más prominente para un bloque de código LaTeX (desafortunadamente, este lenguaje no está habilitado en el foro actual), pero así es como se ve en nuestro foro de Discourse:

para ser comparado con cómo podría verse con Pygments:

o incluso mejor con un tema/lexer personalizado:

¿Sería posible basarse en Pygments en lugar de en highlight.js?

1 me gusta

El problema es que es un paquete de Python y no de Javascript :eyes:. Me pregunto si se puede convertir :thinking: .

3 Me gusta

Ah, de hecho, Pygments parece ser adecuado para sitios html estáticos, no para aplicaciones como Discourse.

¿Quizás un tema diferente de highlight.js mejoraría también los colores?

Puedes probarlos en Demo - highlight.js y hay un componente para cambiarlo
Codeblock Theme Picker

2 Me gusta

De hecho, otro tema podría proporcionar colores más agradables, pero el problema persiste: el analizador léxico de highlight.js es minimalista.