Change highlight.js styles?

I have customized the colors of my Discourse instance to use a dark background color, however syntax highlighting does not look good anymore.

What is the easiest way to tell highlight.js to use a different style?

Admin, customize, css

Oh right, thanks Jeff.

Unfortunately it looks like it isn’t working correctly.

I copy/pasted the CSS from the Agate theme to a new section in Admin / Customize / CSS:

However I get the following results:

(Link to the page: Some thoughts on beta 1.4 - appleseed Users Forum)

Notice that the .hljs-string color is #f99 which does not match the declared style of this class in the Agate theme:

.hljs-string,
.hljs-bullet {
  color: #a2fca2;
}

Not sure what I’m doing wrong. Any clue?

Looks like I would need to add !important to each CSS property…

Is anyone aware of a better solution?

Edit: it doesn’t look like the !important solution would even work…

Nope, it’s because the default has a higher specificity - .hljs-tag .hljs-string . You need to replicate the theme’s rule with that selector.

Thanks @riking, I hadn’t seen this.

Unfortunately that means it’s basically impossible to try highlight.js themes (from their demo page) to find one that fits the color palette of my Discourse instance without inspecting and tweaking them, one rule at a time…

So I guess my original question remains: what’s the (second) easiest way to try an highlight.js theme with Discourse?

Поднимаю тему на случай, если кто-то ещё нашёл удобный способ импортировать более приятные и красочные стили для подсветки синтаксиса кода? Что-то, что выглядит как современный редактор кода.

Подойдёт и решение с пользовательским CSS. Интересно, не выложил ли кто-нибудь подходящий CSS в CDN для импорта или тематический компонент?

Согласен, что переопределение того, что у нас есть, довольно хлопотно. Подсветка синтаксиса с большим набором тем доступна по адресу:

Кастомная тема, безусловно, может придать сайту уникальный вид:

@Johani, может быть, стоит создать #howto-руководство, объясняющее, как взять CSS из официального репозитория, преобразовать его и заставить работать с нашим CSS?

Я создал компонент темы, который позволяет администраторам выбирать тему hljs из выпадающего списка. Подробнее здесь