カスタムテーマのカラーパレットがアップグレード後に機能しません

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>
「いいね!」 1

テーマ設定からHTMLを直接hbsファイルに移動したところ、問題が解決したようです。Discourse 3.4.0でテーマ設定にHTMLを入れるのが好ましくない理由がよくわかりません。

「いいね!」 1

おそらく、ここにヘルパーを追加する必要があります。

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

それは可能性が高いですね。そのhtml-safeヘルパーについてのドキュメントはどこかにありますか、何をするのか見たいです。検索してみましたが見つかりませんでした。

こちらです https://api.emberjs.com/ember/5.12/functions/@ember%2Ftemplate/htmlSafe

「いいね!」 1

ああ、ありがとう。私はエンバーではなくハンドルバーのドキュメントを探していました。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.