Incrustar comentarios de Discourse en otro sitio web mediante Javascript

Intenté implementar esto hoy, pero tengo algunos problemas:

  • En la publicación del foro, la URL derivada (¿de discourseEmbedUrl?) se convierte a minúsculas, rompiendo las URL que distinguen mayúsculas y minúsculas en el enlace que sigue al texto “Este es un tema de discusión complementario para la entrada original en…”
  • En la primera carga de página, el embed dice “Cargando discusión…” y se cuelga. En la segunda carga de página, todo funciona.
  • Paginación: cuando el iframe se está cargando, tendrá una altura predeterminada, pero si no se encuentran comentarios, la altura se reduce para mostrar solo una línea con “Iniciar discusión”. Esto empeora el error de “cargando discusión”, ya que mantiene una gran altura vertical abierta.
  • Sería bueno si los datos extraídos del padre del embed pudieran favorecer una etiqueta meta en lugar de convertir toda la página en texto, supongo que este es un comportamiento más general de Discourse.

La mayor sorpresa fue descubrir que cada vez que visitas una URL con un embed, se crea un nuevo tema. Esto está en el OP:

La única solución que se me ocurre es un truco, que depende del SSR/caché a corto plazo para hacer ping al punto final del embed:

así que creo que la lógica sería:

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

  2. si el tema existe, muestra el embed como de costumbre.

  3. si no, muestra un botón “iniciar conversación” que enlaza a $discourse/new-topic?subject=$link.

¿Funcionaría eso, o hay algún otro enlace que deba tener lugar?