Миниатюры отсутствуют для наших внешних вставок при использовании topic-thumbnails

После обсуждения с командой Discourse по электронной почте я обновляю информацию здесь.

Главное открытие заключается в том, что миниатюры не загружаются, если ссылка, превращающаяся в onebox, рендерится как iframe.

Это означает, что ссылка:

https://app.everviz.com/embed/N0dDTJaOQ

может отображать миниатюру или нет в зависимости от того, разрешены ли iframes с данного домена (настройка allowed iframes). Решение состоит в том, чтобы каким-то образом внедрить iframe в пост. Я создал плагин, который делает это и устанавливает display: none для изображения, чтобы предотвратить его отображение в посте.

Предполагаю, что возможно обобщить этот подход для:

  1. Для всех общих onebox-ов: незаметно загружать и скрывать изображение рядом с ними, если существует get_oembed.thumbnail_url.
  2. Что, вероятно, является лучшим решением: добавить общую поддержку извлечения get_oembed.thumbnail_url и связывания его с постом, без включения его в область cooked.

Релевантные места:

  1. https://oembed.com/
  2. discourse/lib/onebox/engine at main · discourse/discourse · GitHub
  3. discourse/lib/onebox/engine/standard_embed.rb at main · discourse/discourse · GitHub

Меня не совсем устраивает такое модальное поведение, то есть включена ли настройка allowed iframes или нет. Было бы здорово, если бы Discourse извлекал и использовал все свойства из конечной точки oembed при первом отправлении запроса GET к ней.