Saludos.
Estoy migrando un foro antiguo a Discourse y el sitio original tenía un tema único (incluido un logotipo de encabezado único) para una de sus categorías.
Mi solución actual es un componente de tema que se ve algo así:
CSS:
body.category-target-category{
///reemplaza los #hexcodes con los valores de color de tu elección
--primary: #primaryhexcode;
--secondary: #secondaryhexcode;
--tertiary: #tertiaryhexcode;
///continúa para todos los valores de color requeridos
}
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>
Actualmente, tengo que iterar a través de cada valor de color posible mencionado en color_definitions.scss para anularlos. Creo que los valores para este archivo se producen en foundation/color_transformations.scss, que los genera a partir de los valores que se encuentran en foundation/colors.scss. Sé que puedes anular los valores del tema de color raíz a través del menú de administración o en el about.json del componente de tema, pero creo que estos cambios se aplican en todo el sitio.
¿Hay una forma más eficiente de personalizar una categoría específica además de enumerar todas las más de 100 variables en color_definitions.scss? Por ejemplo, ¿se puede modificar el archivo foundation/colors.scss a través de un componente de tema?
¡Gracias por tu ayuda!