안녕하세요.
구식 포럼을 디스커스로 이관하고 있는데, 원본 사이트에는 특정 카테고리에 고유한 테마(고유한 헤더 로고 포함)가 적용되어 있었습니다.
현재 제 해결책은 다음과 같은 형태를 가진 테마 컴포넌트입니다:
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 파일을 테마 컴포넌트를 통해 수정할 수 있을까요?
도움 주셔서 감사합니다!