Incorpora commenti di Discourse su un altro sito web tramite Javascript

Ho provato a implementarlo oggi ma ho alcuni problemi:

  • Nel post del forum, l’URL derivato (da discourseEmbedUrl?) viene convertito in minuscolo, rompendo gli URL sensibili alle maiuscole nel link che segue il testo “Questo è un argomento di discussione complementare per la voce originale su…”
  • Al primo caricamento della pagina, l’embed dice “Caricamento discussione…” e si blocca. Al secondo caricamento della pagina tutto funziona.
  • Paginazione: quando l’iframe si sta caricando, avrà un’altezza predefinita, ma se non vengono trovati commenti, l’altezza si riduce per visualizzare solo una riga con “Avvia discussione”. Questo peggiora il bug del caricamento della discussione, poiché mantiene un’altezza verticale elevata.
  • Sarebbe bello se i dati estratti dal genitore dell’embed favorissero un meta tag invece di trasformare l’intera pagina in testo, suppongo che questo sia un comportamento più generalizzato di discourse.

La sorpresa più grande è stata scoprire che ogni volta che visiti un URL con un embed, viene creato un nuovo argomento. Questo è nell’OP:

L’unica soluzione a cui riesco a pensare è un po’ un trucco, che si basa su SSR/caching a breve termine per eseguire il ping dell’endpoint dell’embed:

quindi penso che la logica sarebbe:

  1. controlla $discourse/embed/info?embed_url=$link

  2. se l’argomento esiste, mostra l’embed come al solito.

  3. in caso contrario, mostra un pulsante “avvia conversazione” che collega a $discourse/new-topic?subject=$link.

Funzionerebbe, o c’è qualche altro collegamento che deve essere effettuato?