Например, вот код на Swift
func jjj () {
let jj: String = "1"
}
Я хочу, чтобы он был раскрашен следующим образом,
Цвет добавляется в зависимости от языка. Вы можете проверить, добавлен ли Swift в highlighted_languages, и если определение по-прежнему не работает, вы также можете вручную установить язык для блока кода.
Форматирование блока кода в порядке, оно было добавлено как (без кавычек):
[код здесь]
Оно подсвечивается следующим образом, но проблема в цвете, который он использует — мне он не нравится. Подсветка выглядит так (см. красный цвет у «jjj» — я хочу, чтобы он был синим).
Но я хочу что-то вроде этого:
Возможно ли отредактировать файл через терминал, чтобы изменить цвета по умолчанию, назначенные для конкретного языка?
Обнаруженные языки настраиваются через параметр сайта: highlighted languages.
Swift по умолчанию включён в список, но на meta этого нет.
Список поддерживаемых языков этой сторонней библиотеки доступен здесь:
edit: как объясняется здесь ![]()
@PrettyGirl, совет по Markdown: чтобы экранировать обратные кавычки в блоке кода, оберните ваш код в четыре обратные кавычки вместо трёх ![]()
``` swift
[code here]
```
Привет ![]()
Вы также можете попробовать изменить цвета с помощью этого компонента темы ![]()
Спасибо за совет и ссылку. Однако в настройках сайта highlighted languages указан swift. Подсветка работает, но мне не нравятся текущие цвета. Есть ли другой способ? Может, отредактировать highlight.js в папке discourse и т. д.? Должен же быть способ, я заметил, что highlight.js тоже с открытым исходным кодом.
Discourse по умолчанию поставляется с highlight.js?
Ой, извините, я неправильно понял вашу тему. ![]()
Да ![]()
Вы пробовали компонент темы, опубликованный в Beeper в вашем последнем сообщении?
Я не стал этого делать, потому что не знаю, как изменится внешний вид других разделов (во всём приложении Discourse), если я применю другие темы. Мне нравится текущий вид и настройки, но есть пара мелких проблем. Если смена темы повлияет на внешний вид или настройки, даже если при этом код будет красиво оформлен, это того не стоит. Мне нужно просто исправить эту конкретную проблему.
Вы можете отдельно настроить языки кода и переопределить автоматическое определение языка, как упоминалось в предыдущих сообщениях.
Если вы хотите настроить Swift, используйте класс .language-swift. Более конкретно: code.hljs.language-swift. Также вы можете изменить цвета Swift в CSS.
Я проверил это, и похоже, что это близко к теме Xcode. Однако мы изменим эти два цвета, чтобы они лучше соответствовали цветам кода на вашем скриншоте.
Проблема с этими цветами в том, что их трудно читать в тёмной теме. Именно поэтому на странице демонстрации highlight.js используется белый фон, и, думаю, именно по этой причине Discourse использует стандартную комбинацию цветов для языков. Если я правильно помню, в прошлом были сообщения о том, что это трудно читать в тёмной теме и т.д…
Чтобы изменить стили только для Swift, вам нужно создать новый компонент темы или добавить этот код в существующий. Примечание: эти цвета будут использоваться также в тёмной теме (белый фон и т.д.), поэтому, если вы хотите разные цвета в тёмной теме, вам нужно создать новые определения цветов с помощью dark-light-choose().
Общие / CSS
code.hljs.language-swift {
background: #fff;
color: #000;
.xml .hljs-meta {
color: silver;
}
.hljs-comment,
.hljs-quote {
color: #007400;
}
.hljs-attribute,
.hljs-keyword,
.hljs-literal,
.hljs-name,
.hljs-selector-tag,
.hljs-tag {
color: #aa0d91;
}
.hljs-template-variable,
.hljs-variable {
color: #3f6e74;
}
.hljs-code,
.hljs-meta .hljs-string,
.hljs-string {
color: #c41a16;
}
.hljs-link,
.hljs-regexp {
color: #0e0eff;
}
.hljs-bullet,
.hljs-number,
.hljs-symbol,
.hljs-title {
color: #2b75a6;
}
.hljs-meta,
.hljs-section {
color: #643820;
}
.hljs-built_in,
.hljs-class .hljs-title,
.hljs-params,
.hljs-title.class_,
.hljs-type {
color: #442fa1;
}
.hljs-attr {
color: #836c28;
}
.hljs-subst {
color: #000;
}
.hljs-formula {
background-color: #eee;
font-style: italic;
}
.hljs-addition {
background-color: #baeeba;
}
.hljs-deletion {
background-color: #ffc8bd;
}
.hljs-selector-class,
.hljs-selector-id {
color: #9b703f;
}
.hljs-doctag,
.hljs-strong {
font-weight: 700;
}
.hljs-emphasis {
font-style: italic;
}
}
До
После
К вашей текущей теме #theme добавляется компонент #theme-component. Это не меняет весь внешний вид целиком, а добавляет или изменяет что-то конкретное. Таким образом, пользовательский компонент кода меняет только отображение кода.
В описании сказано, что это меняет только блоки кода, что именно вы и хотите сделать.
Пожалуйста, прочитайте ссылки о том, как работают темы, которые предложили другие пользователи.
Удивительно, большое спасибо. Всё работает ![]()