Добавить модуль rpm в highlightjs?

Похоже, что из-за нехватки основных разработчиков проект highlightjs просит добавлять поддержку новых языков через отдельные репозитории. (См. Policy: Discuss extras repository for additional languages · Issue #2149 · highlightjs/highlight.js · GitHub).

Один из таких репозиториев — GitHub - highlightjs/highlightjs-rpm-specfile · GitHub, предназначенный для подсветки синтаксиса RPM-файлов specfile. Не могли бы вы добавить его в Discourse? Это было бы крайне полезно для Fedora!

1 лайк

Мы добавляли языки, отличные от языка по умолчанию, как #theme-component, и даже добавили для этого специальный API-хук.

3 лайка

Окей, круто — есть пример, который можно взять за основу?

2 лайка

Я быстро собрал для вас пакет, не могли бы вы его протестировать?

5 лайков

Спасибо!!! И да — сразу после обеда. :slight_smile:

3 лайка

Да, похоже, работает!

Судя по тому, что я вижу, оно автоматически определяется и функционирует. Если я хочу, чтобы

```rpm-specfile

работал, мне, кажется, нужно добавить rpm-specfile в настройку сайта «Подсветка языков». Правильно ли я понимаю?

Также, если я укажу там rpm, это тоже работает. Это ожидаемое поведение, или это один из тех случаев, когда желаемое происходит по неправильной причине? :slight_smile:

1 лайк

Хм, но кажется, что это не совсем так… Я вижу жирный шрифт для секций вроде %description и %prep, фиолетовый для макросов вроде %{?dist}, а комментарии, начинающиеся с #, отображаются серым курсивом. Пока всё хорошо.

Но, глядя на discourse-highlightjs-rpm/javascripts/discourse/lib/rpm-highlightjs.js at main · discourse/discourse-highlightjs-rpm · GitHub, я ожидал, что Name:, Release: и подобные будут как-то подсвечиваться, а также %if и %endif — но этого не происходит.

1 лайк

Эти комментарии относятся к интеграции с Discourse или к качеству самого подсветчика?

Я просто скопировал и вставил определение из ссылки, которую вы привели в первом сообщении, в компонент темы #theme-component, совместимый с Discourse, поэтому его возможности остались прежними.

1 лайк

Я вижу эти элементы в коде вашего[1] репозитория, поэтому я ожидаю, что они будут работать, но в Discourse они, похоже, не подсвечиваются. Не знаю, проблема ли это в модуле подсветки, в реализации Discourse для этого модуля или в компоненте темы.


  1. это не должно восприниматься как обвинение, вроде «это _ваш» репозиторий»… просто для ясности :slight_smile: ↩︎

(Для справки: я добавил это в закладки, чтобы проверить, что должно работать, как только у меня появится возможность.)

1 лайк

@falco — у меня было немного времени, чтобы посмотреть на это. Используя встроенный инспектор Firefox, я вижу, что он правильно добавляет теги span с классами hljs-type, hljs-keyword и т. д. Но если я посмотрю на сторону стилей, то вижу .hljs, но не .hljs-type — присутствуют только .hljs-keyword и .hljs-comment (те, которые работают).

Кстати, .hljs-string тоже работает. Но я вижу некоторые другие в css … есть какие-то идеи, что происходит?

Кстати, это всё ещё не работает. (грустный смайлик)

1 лайк

Похоже, в ядре отсутствовали стили для класса .hljs-type. Я привёл всё в порядок в этом PR.

Точные цвета зависят от вашей темы, но вот пример файла RPM:

3 лайка

Да, теперь работает. Спасибо!

1 лайк

Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.