No se basa en el tamaño de la imagen. En general, no tomamos las imágenes de los oneboxes, porque en muchos casos no son útiles para las miniaturas. Por ejemplo, algo que vemos mucho en Meta son enlaces a repositorios de GitHub como
Nadie quiere que mi cara sea ampliada y se convierta en la miniatura del tema
Bueno, eso es muy específico de Meta; no tenemos ningún enlace a GitHub en nuestra comunidad. Se trata de noticias y deben usarse imágenes de onebox. Esto limita mucho las miniaturas, solo por este problema de “rostros” en Meta. ¿Existe alguna forma potencial de modificar esto y agregar imágenes de oneboxes? Supongo que a muchas comunidades no les importan los “rostros” de GitHub.
Ciertamente estoy abierto a mejoras aquí. Sé que @merefield también está interesado en esta lógica. El cambio sería necesario en el núcleo, no en un plugin, así que lo separaré en su propio tema.
Aquí está la lógica existente:
Tal vez podríamos añadir una clase .no-thumbnail a ciertos tipos de onebox (por ejemplo, GitHub) y luego enseñar a Discourse a ignorar solo esos, manteniendo las imágenes de otros onebox.
Voy a añadir la etiqueta pr-welcome a esto, pero asegúrate de describir un plan en este tema antes de realizar cualquier trabajo sustancial.
Eso sería genial. El 90% de nuestros temas actualmente no tienen miniaturas, aunque podrían tenerlas. Y como se mencionó, este problema de GitHub es un caso límite muy específico para comunidades de desarrolladores; la gran mayoría de nosotros no obtenemos miniaturas para temas que definitivamente podrían tenerlas debido a esto.
¡Segundo esto!!! Para el caso de uso de un agregador de noticias o cualquier otro tipo de página con muchas republicaciones, no tener miniaturas relevantes es un problema grave.
Si ustedes no integran esto pronto, ¿tienen alguna idea sobre cómo hacerlo en mi distribución autoalojada?
Sí, actualmente no está en la mesa debido a que los “rostros” de GitHub podrían mostrarse en comunidades de desarrolladores como Meta, pero la mayoría de las comunidades no les importan los “rostros” y quieren tener tantos miniaturas como sea posible, especialmente cuando hay imágenes onebox lo suficientemente grandes disponibles para el OP.
def extract_images_for_post
# todas las imágenes con un atributo src
@doc.css("img[src]") -
# menos emojis
@doc.css("img.emoji") -
# menos imágenes dentro de citas
@doc.css(".quote img") -
# menos iconos de sitio de onebox
@doc.css("img.site-icon") -
# menos avatares de onebox
@doc.css("img.onebox-avatar") #Criterios más amplios que el núcleo de Discourse
end
Sí, gracias @merefield, pero solo usamos el componente de tema de @david, no el TLP TC. Sin embargo, probablemente usaré tu evaluación para parchear el núcleo si no obtenemos algún avance o una opción proporcionada por el @team sobre este tema.
@david Definitivamente estaría encantado de poder eliminar esta anulación de los complementos y estoy de acuerdo en que una solución centralizada sería lo mejor.
Entendido. Por ahora, solo tengo un entorno de desarrollo Docker sencillo para crear algunos plugins y parches básicos del núcleo. Esperaré a que alguien revise esto y, probablemente, aplique un parche mediante tu evaluación en el meantime.
Un trabajo adecuado aquí no es un proyecto intangible, ya que necesitas modificar casos de prueba y trabajar en ambos componentes (Discourse y Discourse One-Box). ¡Pero definitivamente vale la pena hacerlo!
Por cierto, Ruby no es nada que debas temer después de Ember
Como solución alternativa, a menudo copio y pego la imagen manualmente en un chat de Whisper y luego selecciono la miniatura desde allí.
Sería más cómodo que fuera automático, quizás con una opción de configuración para especificar dominios de los que no se deben extraer miniaturas de los cuadros de una sola línea (por ejemplo, para cubrir el caso de GitHub).
Estoy de acuerdo. Usamos el fragmento de @merefield para sobrescribir el núcleo con un mini plugin. Pero debería ser fácil para el equipo del núcleo proponer algo listo para usar. No tener esto simplemente porque algunos temen que aparezcan sus rostros de GitHub es simplemente perezoso.