topic-thumbnails を使用すると、外部埋め込みのサムネイルが欠落しています

Discourseチームとメールで何度かやり取りした後、ここで更新します。

主な発見は、onebox になるリンクが iframe としてレンダリングされる場合、サムネイルが読み込まれないということです。

つまり、リンク:

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

は、ドメインからの iframe が許可されているかどうかに応じて、サムネイルをレンダリングしたりしなかったりします(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 リクエストを送信するときに、そこからのすべてのプロパティを抽出し、利用してくれると良いのですが。