Configurer les langages de programmation disponibles pour la coloration syntaxique

:bookmark: Ce guide explique comment configurer les langages de programmation disponibles pour la coloration syntaxique dans Discourse.
:person_raising_hand: Niveau d’utilisateur requis : Administrateur

La coloration syntaxique améliore la lisibilité des blocs de code en appliquant un formatage basé sur le langage de programmation. Vous pouvez personnaliser les langages disponibles pour la coloration syntaxique dans Discourse.

Configuration du paramètre de site highlighted_languages

Pour configurer la liste des langages de programmation pour la coloration syntaxique :

  1. Accédez au panneau d’administration.
  2. Allez dans Paramètres.
  3. Recherchez le paramètre de site highlighted_languages.

Dans ce paramètre, vous pouvez définir quels langages seront disponibles pour la coloration syntaxique. Entrez les noms des langages que vous souhaitez prendre en charge, séparés par des virgules.

Ajout de la prise en charge de langages supplémentaires

Si le langage souhaité n’est pas inclus dans highlight.js, vous devez l’ajouter manuellement. Voici les étapes pour y parvenir :

  1. Localisez un module pour votre langage : Trouvez un module highlight.js qui prend en charge le langage que vous souhaitez ajouter. Par exemple, pour ajouter Solidity, vous pouvez utiliser le package highlightjs-solidity.
  • Solidity : https://github.com/highlightjs/highlightjs-solidity
  • Supercollider : https://github.com/highlightjs/highlightjs-supercollider
  1. Intégrez le module à l’aide d’un composant de thème :
  • Obtenez le script HighlightJS pour le langage souhaité.
  • Créez un nouveau composant de thème dans Discourse.
  • Ajoutez le script au composant de thème pour vous assurer qu’il s’intègre correctement.
7 « J'aime »

Je souhaite ajouter Solidity, un langage qui n’est pas inclus avec highlight.js. Il est fourni dans ce package : GitHub - highlightjs/highlightjs-solidity

Je ne suis pas sûr de la manière de procéder. Je l’ai ajouté aux paramètres de Discourse. Va-t-il trouver le package pour moi et s’occuper de tout, ou dois-je placer ce package JavaScript supplémentaire quelque part ? J’apprécierais quelques conseils :slight_smile:

1 « J'aime »

Je suis également intéressé par cela, pour prendre en charge la coloration syntaxique du langage supercollider via GitHub - highlightjs/highlightjs-supercollider

1 « J'aime »

Relever. Si nous voulons ajouter la prise en charge de la coloration syntaxique pour des langues qui ne sont pas déjà dans highlight.js, y a-t-il un moyen de l’ajouter directement, par exemple via un composant de thème, ou devons-nous demander aux personnes en amont de highlight.js d’accepter une PR avec la syntaxe supplémentaire ?

Je demande car il existe une paire de langues assez ésotériques, Archetype Description Language (ADL) et Archetype Query Language (AQL), que les propriétaires de discourse.openehr.org aimeraient pouvoir colorer syntaxiquement. Ils ont la capacité technique de créer un analyseur/colorateur, ils ont juste besoin de savoir comment le faire fonctionner dans un Discourse.

3 « J'aime »

C’est tout à fait réalisable en tant que composant de thème ! Une fois que vous aurez préparé le script HighlightJS, faites-moi signe ici et je pourrai vous aider à construire le Theme component.

3 « J'aime »

Merci @Falco ! Je vais créer le script et je reviendrai lorsque tout sera prêt.

3 « J'aime »

Au cours des une ou deux dernières semaines, j’ai remarqué que la coloration syntaxique ne semble pas s’activer comme elle le devrait. Voir ici un exemple. Lorsque je spécifie une langue (java dans le cas ci-dessus), les couleurs s’appliquent.

Voici un autre exemple pour XML :
https://developer.sailpoint.com/discuss/t/get-application-roles-as-well-as-search-for-the-roles/78194?u=derek_putnam

Nous avons des dizaines de langues à détecter. Je vois que le sous-texte sous ce paramètre indique qu’un trop grand nombre d’entre elles peut nuire aux performances, mais je ne pense pas que nous en ayons ajouté récemment.