Discourse-Kommentare via Javascript auf einer anderen Website einbetten

Ich habe heute versucht, dies zu implementieren, aber es gibt einige Probleme für mich:

  • Im Forum-Post wird die abgeleitete URL (von discourseEmbedUrl?) kleingeschrieben, wodurch URL mit Groß- und Kleinschreibung beachtet werden, die dem Text „Dies ist ein begleitendes Diskussionsthema für den ursprünglichen Eintrag unter…“ folgen, kaputtgehen.
  • Beim ersten Laden der Seite zeigt das Embed „Diskussion wird geladen…“ und hängt. Beim zweiten Laden der Seite funktioniert alles.
  • Seiten-Thrashing: Wenn der Iframe geladen wird, hat er eine Standardhöhe, aber wenn keine Kommentare gefunden werden, schrumpft die Höhe auf nur eine Zeile mit „Diskussion starten“. Dies verschlimmert den Fehler „Diskussion wird geladen“, da er eine große vertikale Höhe offen hält.
  • Es wäre schön, wenn die vom übergeordneten Element des Embeds extrahierten Daten einen Meta-Tag bevorzugen könnten, anstatt die gesamte Seite zu textifizieren. Ich nehme an, das ist ein allgemeineres Discourse-Verhalten.

Die größte Überraschung war zu erfahren, dass jedes Mal, wenn Sie eine URL mit einem Embed besuchen, ein neuer Thread erstellt wird. Das steht im OP:

Die einzige Lösung, die mir einfällt, ist hacky und verlässt sich auf kurzfristiges SSR/Caching, um den Embed-Endpunkt anzupingen:

Daher denke ich, dass die Logik wäre:

  1. Überprüfen Sie $discourse/embed/info?embed_url=$link.

  2. Wenn der Thread existiert, zeigen Sie das Embed wie gewohnt an.

  3. Wenn nicht, zeigen Sie eine Schaltfläche „Konversation starten“ an, die zu $discourse/new-topic?subject=$link verlinkt.

Würde das funktionieren oder muss eine andere Verknüpfung stattfinden?