为 highlightjs 添加 rpm module?

据了解,highlightjs 由于核心维护者不足,要求通过单独的存储库添加新的语言支持。(见 https://github.com/highlightjs/highlight.js/issues/2149)。

其中一个单独的存储库是 https://github.com/highlightjs/highlightjs-rpm-specfile,用于高亮显示 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} 等宏是紫色,# 注释是灰色斜体。到目前为止都很好。

但看看 https://github.com/discourse/discourse-highlightjs-rpm/blob/main/javascripts/lib/rpm-highlightjs.js,我也期望 Name:Release: 等内容以某种方式高亮显示,还有 %if%endif——但这些都没有。

1 个赞

这些评论是指 Discourse 集成还是荧光笔本身的质量?

我只是将您在 OP 链接中提供的定义复制并粘贴到一个与 Discourse 兼容的 Theme component 中,因此它的功能仍然是原始的。

1 个赞

我在你的[1] 仓库中看到了代码里的这些东西,所以我_期望_它们能正常工作,但在 Discourse 中它们似乎没有被高亮显示。我不知道这是荧光笔模块的问题,还是 Discourse 对它的实现有问题,或者是主题组件的问题。


  1. 这不是一个“指责”声明,比如“这是_你的_仓库”……只是为了说清楚 :slight_smile: ↩︎

(供记录,我已收藏此内容,以便有机会时检查_应该_如何工作。)

1 个赞

@falco — 我花了一些时间查看这个问题。使用 Firefox 内置的检查器,我可以看到它正确地添加了带有 hljs-typehljs-keyword 等类的 span。但如果我在样式方面查看,我看到一个 .hljs,但没有 .hljs-type — 只有 .hljs-keyword.hljs-comment(那些起作用的)似乎在那里。

哦,.hljs-string 也有效。但我看到 CSS 中还有一些其他的……有什么想法吗?

供参考,这仍然无效。(伤心表情符号

1 个赞

Looks like core was missing styling for the .hljs-type class. I’ve cleaned things up in this PR.

Exact colours will depend on your theme, but here’s an example RPM file:

3 个赞

是的,现在可以了。谢谢!

1 个赞

此主题已在 3 天后自动关闭。不再允许回复。