Soundcloud と YouTube の onebox からのサムネイルに関する問題

お話しした通り、サムネイル生成のロジックは現在、コアに組み込まれています。

TLP が以前に行っていたことは、もはや大部分不要です。

参考までに、コアの組み込み基準は以下の通りです。

  def extract_images_for_post
    # src 属性を持つすべての画像
    @doc.css("img[src]") -
    # イモージを除外
    @doc.css("img.emoji") -
    # 引用内の画像を除外
    @doc.css(".quote img") -
    # ワンボックスのサイトアイコンを除外
    @doc.css("img.site-icon") -
    # ワンボックスのアバターを除外
    @doc.css("img.onebox-avatar") -
    # 小さなワンボックス画像を除外(大きな画像は .aspect-image-full-size)
    @doc.css(".onebox .aspect-image img")
  end

discourse/lib/cooked_post_processor.rb at main · discourse/discourse · GitHub より

TLP はこれをわずかに変更していますが、条件を緩和するためだけです。可能であれば、このオーバーライドを完全に削除したいと考えています。

  def extract_images_for_post
    # src 属性を持つすべての画像
    @doc.css("img[src]") -
    # イモージを除外
    @doc.css("img.emoji") -
    # 引用内の画像を除外
    @doc.css(".quote img") -
    # ワンボックスのサイトアイコンを除外
    @doc.css("img.site-icon") -
    # ワンボックスのアバターを除外 # コアよりも広範な基準
    @doc.css("img.onebox-avatar")
  end

https://github.com/paviliondev/discourse-topic-previews/blob/master/lib/cooked_post_processor_edits.rb より

ご覧の通り、コアで定義されている小さなワンボックス画像を許可することで、除外対象を減らしています。

これを TLP で維持するのではなく、ユースケース全体で合意と整合性を図ることが重要です。そうすれば、プラグイン内でこれを維持する必要がなくなります。

これは @Arkshine にも関連します。