Это руководство объясняет, как настроить доступные языки программирования для подсветки синтаксиса в Discourse.
Требуемый уровень доступа: Администратор
Подсветка синтаксиса улучшает читаемость блоков кода, применяя форматирование в зависимости от языка программирования. В Discourse можно настроить список языков, доступных для подсветки синтаксиса.
Настройка параметра сайта highlighted_languages
Чтобы настроить список языков программирования для подсветки синтаксиса:
- Перейдите в панель администратора.
- Откройте раздел
Config→Content→Posts and Topics. - Найдите параметр сайта
highlighted_languages.
В этом параметре вы можете определить, какие языки будут доступны для подсветки синтаксиса. Введите названия языков, которые вы хотите поддерживать, разделяя их запятыми.
Связанные параметры
В том же разделе есть два дополнительных параметра сайта, связанных с подсветкой синтаксиса:
default_code_lang— Язык по умолчанию, применяемый к блокам кода, если язык не указан. По умолчанию установлено значениеauto, которое пытается автоматически определить язык.autohighlight_all_code— При включении применяется подсветка синтаксиса ко всем блокам<code>, даже тем, у которых не указан класс языка. По умолчанию отключено.
Добавление поддержки дополнительных языков
Если нужный вам язык не включён в highlight.js, его можно добавить с помощью компонента темы, используя плагин API api.registerHighlightJSLanguage(). Ниже приведены шаги для этого:
- Найдите модуль для вашего языка: Найдите определение языка для highlight.js, которое поддерживает нужный вам язык. Например:
- Solidity:
https://github.com/highlightjs/highlightjs-solidity - Supercollider:
https://github.com/highlightjs/highlightjs-supercollider
- Интегрируйте модуль с помощью компонента темы:
- Получите определение языка HighlightJS для нужного языка.
- Создайте новый компонент темы в Discourse.
- В JavaScript-коде компонента темы используйте плагин API для регистрации языка:
api.registerHighlightJSLanguage("languageName", languageDefinitionFunction); - См. Установка нового языка для Highlight.JS через компонент темы для полного примера.

