Цветовая палитра не работает для пользовательской темы после обновления

После обновления до версии 3.4.0 наша тема перестала получать определения цветов для выбранной цветовой палитры. Я вижу CSS-файл, который должен содержать эти определения, но при активной теме он возвращается пустым.

В результате цвета не устанавливаются, а фоновый цвет любого всплывающего окна становится прозрачным, что делает сайт непригодным для использования. Временно мы используем стандартную светлую тему Light в качестве обходного решения.

Я перепробовал всё, что мог придумать. Например:

  • Ручное создание цветовой палитры
  • Удаление и повторная установка темы
  • Многочисленные попытки и ошибки на живом форуме и на тестовом форуме

Наша тема установлена из репозитория Git. В течение короткого времени форум выглядел нормально после восстановления старой копии темы из разработки (не из репозитория Git), но после следующего перезапуска Discourse проблема возникла снова.

На тестовом форуме удаление и повторная установка темы, похоже, исправило ситуацию. Однако на живом форуме такая процедура не помогла.

Когда я переключаюсь на стандартную тему, например Light или Dark, цветовая палитра работает корректно, и я вижу все цвета, определённые в том CSS-файле.

Что может быть причиной того, что определения цветов возвращаются пустыми для нашей темы? Есть ли идеи, как это исправить?

Это, похоже, потенциальная причина проблемы. В нашей теме есть настройка, которая хранит контент для страницы «О нас». Мне не кажется, что до обновления до Discourse 3.4.0 у нас были ошибки компиляции SCSS. Возможно, что-то изменилось в компиляции Sass, и теперь она стала более строгой?

Однако проблема, похоже, возникает при запуске Discourse. Если я просто отредактирую контент в этой настройке темы, ошибки SCSS в логе не будет. Если же перезапустить Discourse, возникнет ошибка SCSS, и файл CSS с определениями цветов снова станет пустым.

Вот код в теме, который использует эту настройку, в файле hbs. Контент в настройке — просто HTML.

<div class="about-description-content">
	{{{theme-setting 'content_about_main'}}}
</div>

Я переместил HTML из настройки темы прямо в hbs-файл, и это, похоже, решило проблему. Не уверен, почему, но Discourse 3.4.0 не принимает это в настройке темы.

Скорее всего, вам нужно добавить здесь хелпер:

{{html-safe (theme-setting 'content_about_main')}}

Звучит правдоподобно. Есть ли где-нибудь документация по этому хелперу html-safe, чтобы я мог посмотреть, что он делает? Я искал в Google, но не смог найти.

Вот ссылка: https://api.emberjs.com/ember/5.12/functions/@ember%2Ftemplate/htmlSafe

Ах, спасибо. Я искал в документации по Handlebars, а не по Ember.