Après la mise à niveau vers la version 3.4.0, notre thème ne reçoit plus les définitions de couleur pour la palette de couleurs sélectionnée. Je vois un fichier CSS qui devrait contenir des définitions de couleur, mais il revient vide lorsque notre thème est actif.
Ainsi, aucune couleur n’est définie et la couleur d’arrière-plan de toute fenêtre contextuelle est transparente, ce qui rend le site inutilisable. Nous utilisons temporairement le thème Clair par défaut à la place comme solution de contournement.
J’ai tout essayé. Par exemple :
Création manuelle de la palette de couleurs
Désinstallation et réinstallation du thème
Beaucoup d’essais et d’erreurs sur le forum en production et sur un forum de staging
Notre thème est installé à partir d’un dépôt git. Pendant une courte période, nous avons réussi à rendre le forum présentable en restaurant une ancienne copie de développement du thème (pas à partir d’un dépôt git), mais la prochaine fois que nous avons redémarré Discourse, cela s’est à nouveau dégradé.
Sur le forum de staging, lorsque j’ai désinstallé et réinstallé le thème, cela a semblé résoudre le problème. Mais la désinstallation et la réinstallation sur le forum en production n’ont pas aidé.
Lorsque je passe à un thème par défaut comme Clair ou Sombre, la palette de couleurs fonctionne bien, je peux voir toutes les couleurs définies dans ce fichier CSS.
Qu’est-ce qui pourrait causer le retour vide des définitions de couleur pour notre thème ? Des idées sur la façon de résoudre ce problème ?
Cela semble être une cause potentielle du problème. Notre thème a un paramètre qui stocke le contenu de notre page “À propos”. Je ne pense pas que nous ayons eu d’erreur de compilation SCSS avant la mise à jour vers Discourse 3.4.0. Peut-être que quelque chose a changé dans la compilation sass et qu’elle est maintenant plus stricte ?
Mais le problème semble survenir au démarrage de Discourse. Si je modifie simplement le contenu de ce paramètre de thème, aucune erreur SCSS n’est enregistrée. Si je redémarre Discourse, l’erreur SCSS se produit et le fichier CSS des définitions de couleurs redevient vide.
Voici le code du thème qui utilise ce paramètre, dans un fichier hbs. Le contenu du paramètre est juste du HTML.
J’ai déplacé le code HTML d’un paramètre de thème directement dans le fichier hbs, et cela semble avoir résolu le problème. Je ne suis pas sûr pourquoi, mais Discourse 3.4.0 n’aime pas cela dans le paramètre de thème.
Cela parait probable. Y a-t-il une documentation concernant cette helper html-safe quelque part, afin que je puisse voir ce qu’elle fait ? J’ai essayé de chercher sur Google et je ne peux pas la trouver.