Ajouter le module rpm à highlightjs ?

Apparemment, highlightjs, faute de mainteneurs principaux, demande que le support de nouveaux langages soit ajouté via des dépôts séparés. (Voir Policy: Discuss extras repository for additional languages · Issue #2149 · highlightjs/highlight.js · GitHub).

Un tel dépôt séparé est GitHub - highlightjs/highlightjs-rpm-specfile, pour la coloration syntaxique du fichier specfile RPM. Pourriez-vous s’il vous plaît l’ajouter à Discourse ? Ce serait extrêmement utile pour Fedora !

1 « J'aime »

Nous avons ajouté des langues non par défaut en tant que Theme component, et même ajouté un hook API dédié à cet effet.

3 « J'aime »

D’accord, super — y a-t-il un exemple que je puisse copier ?

2 « J'aime »

Je vous en ai préparé un rapidement, pouvez-vous l’essayer ?

5 « J'aime »

Merci !!! Et, oui — juste après le déjeuner. :slight_smile:

3 « J'aime »

Oui, ça semble fonctionner !

D’après ce que je peux voir, il semble qu’il détecte et fonctionne automatiquement. Si je veux que

```rpm-specfile

fonctionne, je semble devoir mettre `rpm-specfile` dans le paramètre du site « langues mises en surbrillance ». Est-ce correct ?

Aussi, si je mets `rpm` là, ça fonctionne _aussi_. Est-ce attendu, ou est-ce l'une de ces choses où ce que je veux qu'il se passe se produit pour la mauvaise raison ? :)
1 « J'aime »

Hmm, mais cela ne semble pas être complet… J’obtiens du gras pour des sections comme %description et %prep, du violet pour des macros comme %{?dist}, et les commentaires # deviennent des italiques gris. Jusqu’ici tout va bien.

Mais en regardant https://github.com/discourse/discourse-highlightjs-rpm/blob/main/javascripts/lib/rpm-highlightjs.js, je m’attendrais à ce que Name:, Release: etc. soient également mis en évidence d’une manière ou d’une autre, ainsi que %if et %endif — mais ce n’est pas le cas.

1 « J'aime »

Ces commentaires s’adressent-ils à l’intégration Discourse ou à la qualité du surligneur lui-même ?

J’ai simplement copié et collé la définition du lien que vous avez fourni dans l’OP dans un Theme component compatible avec Discourse, donc ses capacités sont toujours celles d’origine.

1 « J'aime »

Je vois ces choses dans le code de votre[1] dépôt, donc je m’attends à ce qu’ils fonctionnent, mais ils ne semblent pas être mis en surbrillance dans DIscourse. Je ne sais pas si c’est un problème avec le module de surlignage, l’implémentation de celui-ci par Discourse, ou le composant de thème.


  1. ce n’est pas une déclaration de blâme, comme « c’est votre dépôt »… juste pour être clair :slight_smile: ↩︎

(Pour mémoire, j’ai mis en signet ceci pour vérifier ce qui devrait fonctionner quand j’aurai une chance.)

1 « J'aime »

@falco — J’ai eu le temps de regarder ça. En utilisant l’inspecteur intégré de Firefox, je peux voir qu’il ajoute correctement des spans avec des classes comme hljs-type, hljs-keyword, etc. Mais si je regarde du côté des styles, je vois un .hljs mais pas de .hljs-type — seulement .hljs-keyword et .hljs-comment (ceux qui fonctionnent) semblent être présents.

De plus, .hljs-string fonctionne également. Mais je vois certains des autres dans css … une idée de ce qui se passe ?

Pour information, cela ne fonctionne toujours pas. (Triste emoji)

1 « J'aime »

Il semble que le cœur manquait de style pour la classe .hljs-type. J’ai nettoyé les choses dans cette PR.

Les couleurs exactes dépendront de votre thème, mais voici un exemple de fichier RPM :

3 « J'aime »

Oui, ça marche maintenant. Merci !

1 « J'aime »

Ce sujet a été automatiquement fermé après 3 jours. Les nouvelles réponses ne sont plus autorisées.