Adicionar módulo rpm ao highlightjs?

Aparentemente, o highlightjs, devido à falta de mantenedores principais, está solicitando que o suporte a novas linguagens seja adicionado por meio de repositórios separados. (Veja Policy: Discuss extras repository for additional languages · Issue #2149 · highlightjs/highlight.js · GitHub).

Um desses repositórios separados é o GitHub - highlightjs/highlightjs-rpm-specfile, para realçar a sintaxe do RPM specfile. Você poderia adicionar isso ao Discourse? Seria de grande ajuda para o Fedora!

1 curtida

Temos adicionado idiomas não padrão como Theme component, e até mesmo adicionado um hook de API dedicado para isso.

3 curtidas

Ok, legal — tem algum exemplo que eu possa copiar?

2 curtidas

Eu preparei um rapidamente para você, pode testar?

5 curtidas

Obrigado!!! E, sim — logo depois do almoço. :slight_smile:

3 curtidas

Sim, parece funcionar!

Pelo que posso ver, ele parece detectar automaticamente e funcionar. Se eu quiser que

```rpm-specfile

funcione, parece que preciso colocar `rpm-specfile` na configuração do site "linguagens destacadas". Isso está correto?

Além disso, se eu colocar `rpm` lá, isso também funciona. Isso é esperado, ou é uma daquelas coisas em que o que eu quero que aconteça está acontecendo pelo motivo errado? :)
1 curtida

Hmm, mas não parece estar completo… Estou recebendo negrito para seções como %description e %prep, roxo para macros como %{?dist}, e comentários # ficam em itálico cinza. Até aí tudo bem.

Mas olhando para https://github.com/discourse/discourse-highlightjs-rpm/blob/main/javascripts/lib/rpm-highlightjs.js, eu esperaria que Name:, Release: etc., também fossem destacados de alguma forma, assim como %if e %endif — mas esses não são.

1 curtida

Esses comentários são direcionados à integração do Discourse ou à qualidade do próprio highlighter?

Eu apenas copiei e colei a definição do link que você forneceu no OP em um Theme component compatível com o Discourse, então as capacidades dele ainda são as originais.

1 curtida

Estou vendo essas coisas no código do seu[1] repositório, então espero que funcionem, mas eles não parecem estar sendo realçados no Discourse. Não sei se é um problema com o módulo realçador, a implementação do Discourse disso, ou o componente do tema.


  1. isso não é para ser uma declaração de culpa, como “é seu repositório”… só para deixar claro :slight_smile: ↩︎

(Para constar, marquei isto para verificar o que deve funcionar quando tiver uma chance.)

1 curtida

@falco — Tive tempo para analisar isso. Usando o inspetor integrado do Firefox, posso ver que ele adiciona corretamente spans com classes hljs-type, hljs-keyword, etc. Mas se eu olhar do lado dos estilos, vejo um .hljs, mas não .hljs-type — apenas .hljs-keyword e .hljs-comment (os que funcionam) parecem estar lá.

Ah, e .hljs-string também funciona. Mas vejo alguns outros em css … alguma ideia do que está acontecendo?

Para constar, isso ainda não funciona. (Emoji de rosto triste)

1 curtida

Parece que o core estava sem estilo para a classe .hljs-type. Limpei as coisas neste PR.

As cores exatas dependerão do seu tema, mas aqui está um exemplo de arquivo RPM:

3 curtidas

Sim, funciona agora. Obrigado!

1 curtida

Este tópico foi fechado automaticamente após 3 dias. Novas respostas não são mais permitidas.