Pour compléter la réponse de @EricGT, qui explique déjà très bien les choses :
- Un thème ou un composant de thème est essentiellement un moyen de modifier n’importe quelle partie de l’application front-end EmberJS de Discourse. Cela peut aller d’une simple personnalisation du HTML ou du CSS à l’ajout de fonctionnalités complexes. Les thèmes sont beaucoup plus élégants en cas de problème : si quelque chose ne fonctionne pas, l’ensemble de votre site ne sera pas nécessairement mis hors ligne.
- Un plugin affecte principalement l’application côté serveur Rails, mais inclut également toute la puissance d’un thème et la capacité d’agir sur l’application EmberJS, bien que cela soit beaucoup plus complexe. Les échecs de plugins ont tendance à être moins élégants ; si vous pouvez réaliser quelque chose via un thème, commencez par là. Cependant, un plugin est requis si vous avez besoin d’une route personnalisée ou de stocker des données.
- Le pluginAPI est une API côté client que les thèmes ou composants de thème peuvent utiliser pour modifier plus facilement des parties spécifiques du client Discourse.
Le meilleur point de départ pour personnaliser votre site est un thème. Voici quelques ressources :
Guide du concepteur pour les thèmes Discourse
Guide du développeur pour les thèmes Discourse
Guide pour débutants sur l’utilisation de Theme Creator et de l’interface CLI des thèmes pour commencer à créer un thème Discourse