Ich habe bemerkt, dass für das Design-Customizing Themes empfohlen werden, anstatt Plugins zu verwenden. Welche Vorteile haben sie?
Aus Entwicklersicht erscheinen mir Themes zu umständlich. Ich brauche ein weiteres Werkzeug, um Code-Änderungen in Echtzeit sehen zu können – Theme CLI console.
Mir ist auch klar, dass Themes vom Benutzer auswählbar sein können (diese Funktion brauche ich nicht).
Welche Vorteile bieten Themes gegenüber Plugins im produktiven Einsatz?
Wenn Sie also keine Routen erstellen, Serialisierer ändern oder benutzerdefinierte Daten speichern müssen, können Ihr Ziel wahrscheinlich allein mit einem Theme erreichen.
Die größte Herausforderung, die wir aus Support-Sicht bei benutzerdefinierten Plugins sehen, sind Ausfälle der Website. Dies liegt meist daran, dass das Plugin in eine Rails-Klasse oder eine Methode im Kern eingreift, die sich geändert hat, und das Plugin noch nicht aktualisiert wurde, um dies zu berücksichtigen. Wenn sich etwas auf der Ember-Seite ändert und dadurch das Theme oder eine Theme-Komponente fehlschlägt, wird die Website möglicherweise nicht korrekt gerendert, kann aber schnell über /safe-mode deaktiviert werden.
Ich verstehe Ihren Punkt. Ich würde zudem sagen, dass das Gem es Ihnen ermöglicht, Ihr Theme lokal zu entwickeln und es mit jeder Discourse-Website zu synchronisieren, für die Sie einen API-Schlüssel haben, einschließlich theme-creator.discourse.org. Sie benötigen nicht einmal eine lokale Entwicklungsumgebung, solange dieses eine Gem läuft.
Wow, die Antworten hier sind goldwert. Ich habe hier wirklich wenig hinzuzufügen.
Das Einzige, was ich für wichtig erachte, hinzuzufügen, ist, dass wir bei Discourse intern Fortschritte machen, um einige Plugins nun in ein „Plugin für das Backend