Soundcloud 和 YouTube onebox 缩略图问题

正如所讨论的,缩略图生成逻辑现已内置于核心中。

TLP 过去需要做的事情,现在在很大程度上已不再必要。

供参考,纳入的核心标准如下:

  def extract_images_for_post
    # 所有带有 src 属性的图片
    @doc.css("img[src]") -
    # 减去表情符号
    @doc.css("img.emoji") -
    # 减去引用内的图片
    @doc.css(".quote img") -
    # 减去 onebox 站点图标
    @doc.css("img.site-icon") -
    # 减去 onebox 头像
    @doc.css("img.onebox-avatar") -
    # 减去小型 onebox 图片(大型图片为 .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") -
    # 减去 onebox 站点图标
    @doc.css("img.site-icon") -
    # 减去 onebox 头像
    @doc.css("img.onebox-avatar") # 比 Discourse 核心更宽泛的标准
  end

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

如您所见,我通过允许核心定义的小型 onebox 图片,减少了排除项的数量。

与其在 TLP 中维护这一逻辑,不如就各种用例达成共识并实现一致性,这样我就完全不需要在插件中维护它了。

这也与 @Arkshine 相关。