Ce guide explique comment configurer les langages de programmation disponibles pour la coloration syntaxique dans Discourse. 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 :
Accédez au panneau d’administration.
Allez dans Paramètres.
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 :
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.
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
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.
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.
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.
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.