こんにちは。
古いフォーラムを Discourse に移行しており、元のサイトにはカテゴリごとに独自のテーマ(ヘッダーロゴを含む)がありました。
現在の解決策は、次のようなテーマコンポーネントです。
CSS:
body.category-target-category{
///#hexcodes をお好みのカラー値に置き換えてください
--primary: #primaryhexcode;
--secondary: #secondaryhexcode;
--tertiary: #tertiaryhexcode;
///必要に応じて、すべてのカラー値について続行してください
}
HTML/JS:
<script type="text/discourse-plugin" version="0.2.0">
api.onPageChange(() =>{
var logo = document.getElementById("site-logo");
var categories = document.getElementsByClassName("category-target-category");
if(categories.length > 0)
{
logo.src = "category-specific-logo-url";
}
else
{
logo.src = "standard-logo-url";
}
});
</script>
現在、color_definitions.scss で言及されているすべての可能なカラー値をリストアップしてオーバーライドする必要があります。このファイルの値を生成すると思われるのは foundation/color_transformations.scss で、これは foundation/colors.scss に見られる値から生成されます。管理メニューまたはテーマコンポーネントの about.json を介して、ルートカラーテーマの値をオーバーライドできることは知っていますが、これらの変更はサイト全体で行われると考えています。
color_definitions.scss の 100 以上の変数をすべてリストアップする以外に、特定のカテゴリをカスタマイズするより効率的な方法はありますか?たとえば、foundation/colors.scss ファイルをテーマコンポーネントで変更できますか?
ご協力ありがとうございます!