Embed Discourse comments on another website via Javascript

Я попытался реализовать это сегодня, но столкнулся с несколькими проблемами:

  • В сообщении форума сгенерированный URL (из discourseEmbedUrl?) приводится к нижнему регистру (lowercased()), что нарушает работу чувствительных к регистру URL в ссылке, следующей за текстом «Это тема для обсуждения, связанная с оригинальной записью по адресу …».
  • При первой загрузке страницы встраиваемый блок отображает «Загрузка обсуждения…» и зависает. При второй загрузке всё работает корректно.
  • «Тряска» страницы: когда iframe загружается, он имеет высоту по умолчанию, но если комментариев не найдено, высота уменьшается до одной строки с надписью «Начать обсуждение». Это усугубляет проблему с зависанием «Загрузка обсуждения…», так как удерживает большую вертикальную высоту.
  • Было бы неплохо, если бы данные, извлекаемые из родительского элемента embed, отдавали предпочтение мета-тегу вместо преобразования всей страницы в текст. Предполагаю, это более общая особенность поведения Discourse.

Самым большим сюрпризом стало то, что при каждом посещении URL со встроенным обсуждением создается новая тема. Это указано в исходном посте (OP):

Единственное решение, которое я могу придумать, довольно хаковое и полагается на краткосрочный SSR/кэширование для опроса конечной точки embed:

Поэтому, думаю, логика должна быть следующей:

  1. Проверить $discourse/embed/info?embed_url=$link.

  2. Если тема существует, показать embed как обычно.

  3. Если нет, показать кнопку «Начать разговор», ведущую по ссылке $discourse/new-topic?subject=$link.

Сработает ли это, или необходимо реализовать какую-то другую связку?