Hallo zusammen,
In dieser Woche haben wir unseren ersten Sprint zur Anpassung unseres Discourse-Themes gestartet. Wir wussten, dass wir eine beträchtliche Anzahl von Dateien ändern würden, da die Designs sich erheblich von den Standard-Discourse-Themes unterscheiden.
Unser Ansatz ist sehr einfach: Wir versuchen, alles, was wir benötigen, ausschließlich mit SASS umzusetzen, und überschreiben dort, wo nötig, die jeweiligen .hbs/.hbr-Dateien. Uns ist bewusst, dass Letzteres ein gewisses Wartungsrisiko mit sich bringt (wenn die an die Ansicht übergebenen Attribute umbenannt oder entfernt werden, brechen unsere Templates). Wir haben dieses Risiko gegen den Aufwand abgewogen, unsere eigene Infrastruktur zu betreiben, und sind zu dem Schluss gekommen, dass das Hosting auf discourse.org unserem gemeinnützigen Kunden mehr Wert bietet. Wir werden Überwachungscode auf der Seite hinzufügen und einen Reaktionsplan für den Fall bereithalten, dass dies passiert – falls es doch passiert, gehen wir davon aus, dass es sich höchstwahrscheinlich um eine einfache Korrektur handeln wird.
Kommen wir nun zum Kern dieses Beitrags. Wir müssen herausfinden, wie wir die Topic-Liste in ein Feed-ähnliches Erlebnis verwandeln können. Das heißt, unter jedem Topic werden die antwortenden Beiträge als Kommentare gerendert.
Hier ist ein Bild dessen, was wir umsetzen müssen (aktuell wird nur ein Kommentar pro Topic angezeigt – manchmal werden wir mehr anzeigen müssen):
Unser aktueller Stand
@iainbamboo hat sich also intensiv mit der Thematik auseinandergesetzt, um herauszufinden:
- Sind die Post-Daten bereits in der Topic-Liste verfügbar und wir müssen nur das Template ändern? → Nein, das sind sie nicht.
- Wie fügen wir die Post-Daten jedes Topics zur Liste hinzu, damit wir sie im Template rendern können?
- Ist das überhaupt der richtige Ansatz?
- Sollen wir den Ruby-Code modifizieren, um die Daten zum gesendeten Modell hinzuzufügen (möglicherweise als Plugin), ähnlich wie hier: Discourse Timeline. Können wir ein solches Plugin auf discourse.org verwenden?
- Sollen wir die Daten aus Ember abrufen und in Kauf nehmen, dass die Ladezeiten langsamer sind, da mehrere AJAX-Anfragen an den Server gestellt werden, um die Posts jedes Topics zu erhalten (mit dem Risiko, dass Rate Limits erreicht werden)?
- Ist das überhaupt ohne Modifikation des Ruby-Codes möglich?
Nachdem wir uns eine Weile umgesehen haben – die Discourse-Entwicklerdokumentation gelesen und den Quellcode durchgearbeitet haben – kamen wir zu dem Schluss, dass wir fachkundigen Rat bezüglich des besten Vorgehens benötigen.
Und jetzt sind wir hier ![]()
