Configurar qué lenguajes de programación están disponibles para resaltado de sintaxis

:bookmark: Esta guía explica cómo configurar qué lenguajes de programación están disponibles para el resaltado de sintaxis en Discourse.

:person_raising_hand: Nivel de usuario requerido: Administrador

El resaltado de sintaxis mejora la legibilidad en los bloques de código aplicando formato según el lenguaje de programación. Puedes personalizar los lenguajes disponibles para el resaltado de sintaxis en Discourse.

Configuración del ajuste del sitio highlighted_languages

Para configurar la lista de lenguajes de programación para el resaltado de sintaxis:

  1. Navega al panel de Administración.
  2. Ve a Ajustes.
  3. Busca el ajuste del sitio highlighted_languages.

En este ajuste, puedes definir qué lenguajes estarán disponibles para el resaltado de sintaxis. Ingresa los nombres de los lenguajes que deseas admitir, separados por comas.

Añadir soporte para lenguajes adicionales

Si el lenguaje deseado no está incluido con highlight.js, deberás añadirlo manualmente. A continuación, se detallan los pasos para lograrlo:

  1. Localiza un módulo para tu lenguaje: Encuentra un módulo de highlight.js que admita el lenguaje que deseas añadir. Por ejemplo, para añadir Solidity, puedes usar el paquete highlightjs-solidity.
    • Solidity: https://github.com/highlightjs/highlightjs-solidity
    • Supercollider: https://github.com/highlightjs/highlightjs-supercollider
  2. Integra el módulo usando un componente de tema:
    • Obtén el script HighlightJS para el lenguaje deseado.
    • Crea un nuevo componente de tema en Discourse.
    • Añade el script al componente de tema para asegurar que se integre correctamente.
7 Me gusta

Quiero añadir Solidity, un lenguaje que no viene incluido con highlight.js. Se proporciona en este paquete: GitHub - highlightjs/highlightjs-solidity

No estoy seguro de cómo hacerlo. Lo he añadido a la configuración de Discourse. ¿Lo encontrará el paquete por sí solo y se encargará de todo, o tengo que colocar este paquete de JavaScript adicional en algún lugar? Agradecería alguna orientación :slight_smile:

1 me gusta

También me interesa esto, para admitir el resaltado de sintaxis del lenguaje supercollider a través de GitHub - highlightjs/highlightjs-supercollider

1 me gusta

Bump. Si queremos agregar soporte de resaltado de sintaxis para idiomas que aún no están en highlight.js, ¿hay alguna forma de agregarlo directamente, por ejemplo, a través de un componente temático, o necesitamos que la gente de highlight.js acepte una PR con la sintaxis adicional?

Pregunto porque existe un par de idiomas bastante esotéricos, Archetype Description Language (ADL) y Archetype Query Language (AQL), que los propietarios de discourse.openehr.org les gustaría que fueran resaltables por sintaxis. Tienen la capacidad técnica para construir un analizador/resaltador, solo necesitan saber cómo hacerlo funcionar en un Discourse.

3 Me gusta

¡Es totalmente factible como un componente de tema! Una vez que tengas listo el script de HighlightJS, avísame aquí y podré ayudarte a construir el #componente-de-tema.

3 Me gusta

¡Gracias @Falco! Construiré el script y publicaré cuando esté listo.

3 Me gusta

En las últimas una o dos semanas, he notado que el resaltado de código no parece registrarse cuando debería. Ver aquí un ejemplo. Cuando especifico un idioma (java en el caso anterior), se aplican los colores.

Aquí hay otro ejemplo para XML:
https://developer.sailpoint.com/discuss/t/get-application-roles-as-well-as-search-for-the-roles/78194?u=derek_putnam

Tenemos docenas de idiomas para detectar. Veo que el subtexto debajo de esta configuración dice que demasiados pueden hacer que funcione mal, pero no creo que hayamos agregado nada recientemente.