Salutations.
Je suis en train de migrer un ancien forum vers Discourse, et le site d’origine avait un thème unique (y compris un logo d’en-tête unique) pour l’une de ses catégories.
Ma solution actuelle est un composant de thème qui ressemble à ceci :
CSS :
body.category-target-category{
///remplacez les #hexcodes par les valeurs de couleur de votre choix
--primary: #primaryhexcode;
--secondary: #secondaryhexcode;
--tertiary: #tertiaryhexcode;
///continuez pour toutes les valeurs de couleur requises
}
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>
Actuellement, je dois itérer sur toutes les valeurs de couleur possibles mentionnées dans color_definitions.scss afin de les remplacer. Je pense que les valeurs de ce fichier sont produites par foundation/color_transformations.scss, qui les génère à partir des valeurs trouvées dans foundation/colors.scss. Je sais que vous pouvez remplacer les valeurs du thème de couleur racine soit via le menu administrateur, soit dans le fichier about.json du composant de thème, mais je crois que ces modifications s’appliquent à l’ensemble du site.
Existe-t-il un moyen plus efficace de personnaliser une catégorie spécifique sans avoir à lister toutes les plus de 100 variables de color_definitions.scss ? Par exemple, le fichier foundation/colors.scss peut-il être modifié via un composant de thème ?
Merci de votre aide !