Plugin-Entwicklung ohne Referenz

Seit einer Woche versuche ich, eine benutzerdefinierte Route in meinem Forum mit einem Plugin einzurichten. Die Route sollte für jeden öffentlich zugänglich sein. Ich möchte, dass das Plugin einfach HTML aus einer Handlebar-Vorlage unter der angegebenen Route anzeigt. Ich bekomme die Vorlage nicht gerendert.

Ich habe recherchiert, wie man Plugins für Discourse entwickelt, und keine wesentlichen Dokumentationen gefunden. Jedes Mal, wenn jemand eine Frage zur Entwicklung von Plugins stellt, ist die Antwort ein Link zu einer „Anleitung“ zur Entwicklung eines Admin-Plugins, die einen lila Tentakel zeigt. Jedes Mal, wenn es eine Frage zu einer nicht angezeigten Vorlage gibt, werden wir einfach auf die Ember-Dokumentation zu Routern verwiesen.

Diese Anleitung ist in Ordnung, aber es geschieht Magie im Hintergrund, die nicht erklärt wird, damit wir die Informationen aufgreifen und damit arbeiten können. Was ist, wenn wir eine öffentliche Route anzeigen möchten? Wie wird die Datei plugin.rb von Discourse konsumiert? Welche anderen Discourse-spezifischen Codes/Anweisungen kann ich in der Datei plugin.rb verwenden, wie z. B. „add_admin_route“, um Routen zu meiner Anwendung hinzuzufügen? Gibt es eine bestimmte Dateistruktur, die wir verwenden müssen, damit die Routen aufgelöst werden?

Grundsätzlich, wo schauen all die Entwickler, die komplexe Plugins bauen, in der Dokumentation nach, um dies zu tun? Ich bin ein erfahrener Entwickler und das einfache Hinzufügen einer öffentlichen Route zu meinem Forum und das Rendern einer Vorlage an dieser Route ist angesichts der derzeit verfügbaren Anleitungen/Informationen zur Plugin-Entwicklung kompliziert.

Jede Hilfe wird geschätzt. Danke! :heart:

1 „Gefällt mir“

Michael, die Antwort lautet: Schauen Sie sich bestehende Patente an, da Dokumentationen schnell veraltet sein können und oft nur oberflächlich sind. Im Gegensatz dazu werden beliebte Plugins oft sehr aktuell gehalten und decken komplexere Anwendungsfälle ab.

Die Nutzung bestehender Repos, um Ansätze zu verstehen, ist absolut das, was ich und meine Kollegen in den letzten Jahren gelernt haben.

Ich kann Ihnen empfehlen, sich die Repos des Kern-Discourse-Teams (official), die von Pavilion (pavilion) und meine Repos als Beispiele für die Umsetzung anzusehen (in dieser Reihenfolge! :sweat_smile: ).

Da sich die Plattform mit neueren Versionen von Abhängigkeiten und neuen Funktionen weiterentwickelt, können offizielle Plugins, die die neu hinzugefügten Technologien der Plattform nutzen, beispielsweise als Ausgangspunkte sehr nützlich sein.

Suchen Sie nach einem Plugin, das funktional etwas Ähnliches tut wie das, was Sie erreichen wollen, und kopieren Sie den Ansatz.

Hier ist ein Beispiel für ein Plugin, das eine Route hinzufügt:

2 „Gefällt mir“