Si je veux modifier le CSS, je dois créer un composant, créer un fichier CSS et voir qu’il fonctionne. Maintenant, si j’ajoute un autre composant, par exemple ‘Discourse Topic Cards’, puis que je reviens au fichier CSS personnalisé, que j’applique les modifications, que je clique sur enregistrer, puis que je rafraîchis la page, le CSS personnalisé ne s’applique pas.
De plus, pourquoi n’y a-t-il pas de moyen de modifier les modèles dans la zone d’administration ? Si je veux modifier les modèles de ‘Discourse Topic Cards’, je dois me connecter en SSH à l’instance Docker de Discourse et modifier les fichiers pour apporter des changements ?
WordPress vous est-il plus familier ? Si c’est le cas, vous comprendrez plus facilement ceci : vous ne modifiez jamais directement le cœur, les plugins ou les thèmes car vous perdrez toutes les modifications lors de la prochaine mise à jour.
Tant de ces difficultés ne proviennent pas réellement de Discourse, mais de la façon dont le monde fonctionne
Vous devrez peut-être ajouter !important à votre CSS afin que ces règles aient priorité sur d’autres définies ailleurs. Cette situation est attendue lorsque plusieurs composants sont chargés dans un ordre spécifique. C’est un problème courant et pas nécessairement spécifique à Discourse. Je ne sais pas si nous pourrions avoir un système de pondération pour dire « ce composant doit se charger à la fin », mais cela semble vraiment ingérable.
C’est pourquoi il est important que les thèmes et les composants de thèmes n’utilisent pas !important dans le CSS, sauf si c’est absolument nécessaire.
Si vous souhaitez modifier un composant de thème distant, n’hésitez pas à le forker sur GitHub et à créer votre version. C’est la méthode la plus simple ! Cependant, vous ne recevrez aucune mise à jour de la version originale. Vous ne pouvez pas modifier les composants distants car votre personnalisation pourrait entrer en conflit avec les mises à jour (et c’est un cauchemar à gérer).
La personnalisation de Discourse est assez accessible. Cela dépend de ce que vous attendez en termes de personnalisation. Qu’essayez-vous d’accomplir ici ? Peut-être pouvons-nous vous aider. L’équipe de Discourse est généralement ouverte si certains domaines accueillent des installations de personnalisation.
J’exploite des sites Web en ligne depuis plusieurs années, je pense que si vous pouvez créer quelque chose d’un peu plus unique, cela a tendance à mieux fonctionner. Je voudrais personnaliser le modèle « Cartes de sujet Discourse » et inclure les statistiques des affiches, des réponses, des vues et de l’activité de la liste des sujets génériques.
Si vous souhaitez ajouter des modifications par-dessus le composant de thème « Cartes de sujets Discourse », vous pouvez procéder comme suit :
Installez « Cartes de sujets Discourse » et ajoutez-le à votre thème actif.
Créez un nouveau composant de thème.
Ajoutez également le nouveau composant de thème au thème actif.
Vous n’avez pas besoin de vous connecter en SSH au serveur ni de modifier quoi que ce soit dans le code source, ni de forker le dépôt.
À titre d’exemple, voici ce que j’ai fait pour apporter quelques modifications aux « Cartes de sujets Discourse » pour le thème Minima :
De cette façon, vous recevez toujours les nouvelles mises à jour du thème, et tous les composants de thème sont organisés et séparés (vous pouvez donc facilement les désactiver/activer pour le débogage).
Mais oui, je pense que ce processus pourrait être mieux expliqué aux administrateurs.