您好。
我正在将一个旧论坛迁移到 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/colors.scss 中找到的值生成的,然后通过 foundation/color_transformations.scss 生成的。我知道可以通过管理员菜单或主题组件的 about.json 来覆盖根颜色主题值,但我认为这些更改是全局生效的。
除了列出 color_definitions.scss 中的所有 100 多个变量之外,是否有更有效的方法来自定义特定类别?例如,是否可以通过主题组件修改 foundation/colors.scss 文件?
感谢您的帮助!