Développement de plugins sans référence

Depuis une semaine, j’essaie de configurer une route personnalisée sur mon forum à l’aide d’un plugin. La route devrait être accessible publiquement par tout le monde. Je veux que le plugin affiche simplement du HTML à partir d’un modèle handlebar à la route spécifiée. Je n’arrive pas à faire rendre le modèle.

J’ai recherché comment développer des plugins pour Discourse et je ne trouve aucune documentation substantielle. Chaque fois que quelqu’un pose une question sur le développement de plugins, la réponse est un lien vers un « guide » sur le développement d’un plugin d’administration qui montre un tentacule violet. Chaque fois qu’il y a une question sur un modèle qui ne s’affiche pas, nous sommes simplement dirigés vers la documentation d’Ember sur les routeurs.

Ce guide est correct, mais il y a de la magie qui se produit en arrière-plan et qui n’est pas expliquée, de sorte que nous puissions utiliser les informations et continuer. Et si nous voulons afficher une route publique ? Comment le fichier plugin.rb est-il consommé par Discourse ? Quel autre code/instructions spécifiques à Discourse puis-je utiliser dans le fichier plugin.rb comme « add_admin_route » pour ajouter des routes à mon application ? Y a-t-il une structure de fichiers spécifique que nous devons utiliser pour que les routes se résolvent ?

En gros, tous les développeurs qui créent des plugins complexes, où consultent-ils la documentation pour le faire ? Je suis un développeur expérimenté et ajouter simplement une route publique à mon forum et afficher un modèle à cette route est compliqué étant donné les guides/informations disponibles actuellement sur la création de plugins.

Toute aide est appréciée. Merci ! :heart:

1 « J'aime »

Michael, la réponse est : regardez l’art antérieur comme documentation, car il peut rapidement devenir obsolète et a tendance à ne faire qu’effleurer la surface. En revanche, les plugins populaires sont souvent tenus à jour et couvrent des cas d’utilisation plus complexes.

L’utilisation de dépôts existants pour comprendre les approches est absolument ce que mes collègues et moi avons appris à faire au cours des dernières années.

Je peux vous recommander de regarder ceux de l’équipe principale de Discourse (official), ceux de Pavilion (pavilion) et mes dépôts pour des exemples de comment faire les choses (dans cet ordre ! :sweat_smile: ).

Alors que la plateforme évolue avec de nouvelles versions de dépendances et de nouvelles capacités, les plugins officiels exploitant les nouvelles technologies ajoutées à la plateforme, par exemple, peuvent être vraiment utiles comme points de départ.

Recherchez un plugin qui fait fonctionnellement quelque chose de similaire à ce que vous voulez réaliser et copiez l’approche.

Voici un exemple de plugin ajoutant une route :

2 « J'aime »