Isso não depende do tamanho da imagem. Em geral, não extraímos imagens das oneboxes, pois, na maioria dos casos, elas não são úteis para miniaturas. Por exemplo, algo que vemos frequentemente no Meta são links de repositórios do GitHub, como
Ninguém quer que meu rosto seja ampliado e usado como miniatura do tópico
Bem, isso é muito específico para o Meta; não temos nenhum link do GitHub em nossa comunidade. Tudo gira em torno de notícias, e imagens de onebox devem ser usadas. Isso limita bastante as miniaturas, apenas por causa desse problema de “rosto” no Meta. Existe alguma maneira de alterar isso e adicionar imagens de oneboxes? Acredito que muitas comunidades não se importam com os “rostos” do GitHub.
Estou certamente aberto a melhorias aqui. Sei que @merefield também está interessado nessa lógica. A alteração seria necessária no núcleo, e não em um plugin, então vou separar isso em um tópico próprio.
Aqui está a lógica existente:
Talvez pudéssemos adicionar uma classe .no-thumbnail a certos tipos de onebox (por exemplo, GitHub) e, em seguida, ensinar o Discourse a ignorar apenas esses, mantendo as imagens de outros oneboxes.
Vou adicionar a tag pr-welcome a isso, mas certifique-se de descrever um plano neste tópico antes de realizar qualquer trabalho substancial.
Isso seria ótimo. Atualmente, 90% dos nossos tópicos não recebem miniaturas, embora pudessem ter. E, como dito, essa issue no GitHub é um caso limite muito específico para comunidades de desenvolvedores; a grande maioria de nós não recebe miniaturas para tópicos que certamente poderiam ter, por causa disso.
Eu concordo totalmente!!! Para o caso de uso de um agregador de notícias ou qualquer outra página focada em republicações, não ter miniaturas relevantes é um problema sério.
Se vocês não integrarem isso em breve, têm alguma ideia de como fazer isso na minha distribuição auto-hospedada?
Sim, atualmente isso não está sendo considerado, pois os ‘rostos’ do GitHub poderiam ser exibidos em comunidades de desenvolvedores como a do Meta, mas a maioria das comunidades não se importa com ‘rostos’ e deseja ter o maior número possível de miniaturas, especialmente quando há imagens de onebox suficientemente grandes disponíveis para a OP.
def extract_images_for_post
# todas as imagens com um atributo src
@doc.css("img[src]") -
# menos emojis
@doc.css("img.emoji") -
# menos imagens dentro de citações
@doc.css(".quote img") -
# menos ícones de site de onebox
@doc.css("img.site-icon") -
# menos avatares de onebox
@doc.css("img.onebox-avatar") # Critérios mais amplos que o Núcleo do Discourse
end
Sim, obrigado @merefield, mas usamos apenas o componente de tema do @david, não o TLP TC. Mas provavelmente usarei sua avaliação para corrigir o núcleo se não houver algum avanço ou uma opção fornecida pela @team sobre essa questão.
Entendido. Por enquanto, tenho apenas um ambiente de desenvolvimento Docker simples para criar alguns plugins e corrigir falhas básicas. Vou aguardar até que alguém possa analisar isso e, provavelmente, aplicar uma correção por meio da sua avaliação no intervalo.
Um trabalho adequado aqui não é um projeto imaterial, pois você precisará modificar casos de teste e trabalhar nos dois componentes (Discourse e Discourse One-Box). Mas definitivamente vale a pena!
Aliás, Ruby não é nada para se temer depois do Ember
Como solução alternativa, costumo copiar e colar a imagem manualmente em um whisper e, em seguida, selecionar a miniatura a partir dela.
Seria melhor se fosse automático, talvez com uma opção de configuração para especificar domínios dos quais as miniaturas não devem ser extraídas de caixas individuais (ou seja, para cobrir o caso do GitHub).
Concordo. Usamos o snippet do @merefield para substituir o núcleo por um mini-plugin. Mas deveria ser fácil para a equipe do núcleo criar algo pronto para uso. Não ter isso apenas porque alguns têm medo de aparecer com seus rostos no GitHub é apenas preguiça.