Lista de Pré-visualizações de Tópicos (legado)

As miniaturas são criadas pelo núcleo agora. Elas não criarão versões maiores que a imagem original.

Pensando nisso, o que você deseja é um tamanho de miniatura variável, o que vai parecer um pouco desorganizado? Isso não é suportado atualmente.

Eu encontraria um meio-termo e tornaria as miniaturas menores para que as de baixa resolução pareçam menos ruins.

1 curtida

Ok, isso pode ser o problema com algumas das miniaturas, mas não explica outras. Temos vários tópicos (alguns postados hoje e outros postados antes da atualização do plugin TLP, datando de várias semanas atrás) que possuem uploads de imagens grandes com mais de 2000px de largura, mas estão gerando miniaturas muito pequenas de 50px e 100px para a página inicial.

Não, queremos uma única largura e resolução padrão, com altura variável conforme nossas configurações:

topic_list_thumbnail_width é 284
topic_list_thumbnail_height é 0
topic_list_thumbnail_resolution_level é 4 (tive que usar 4 porque o padrão de 2 não está correto… estava gerando miniaturas de 1024 quando deixado no padrão de 2, e eu precisava do tamanho 400, que parece ser 4)

A maneira como entendo essas configurações é:

  1. As miniaturas de imagem terão 400px de largura
  2. Os blocos exibirão as imagens com 284px de largura e altura variável dependendo da proporção do upload da imagem original

No entanto, o fórum parece estar servindo aleatoriamente imagens de 50px de largura ou 100px em alguns tópicos… E essas imagens estão sendo servidas dentro do quadro do bloco, que tem sempre 284px no nosso site, causando assim o desfoque, já que a miniatura menor é esticada para preencher o bloco.

2 curtidas

Verifique a saída do seu /latest.json no Firefox para ver quais miniaturas estão sendo armazenadas.

Você também pode verificar o tamanho das miniaturas exibidas na página usando o inspeção do navegador.

Me avise se notar algo estranho.

Ah, a configuração de largura é irrelevante para os Blocos. (Tente reduzi-la ou aumentá-la muito) Apenas a resolução importa.

Talvez a visualização em Blocos não seja a mais adequada para você?

Deveria eu impedir que miniaturas de baixa resolução apareçam na visualização em Blocos? Ou seja, não mostrá-las de forma alguma. Talvez filtrar todas as de 50 x 50.

1 curtida

Acho que acabei de descobrir exatamente o que está acontecendo… esta é a minha melhor suposição com base no que estou observando:

É um problema na forma como o TLP acessa thumbnails em /latest.json. O array thumbnails nem sempre contém o mesmo número de elementos por tópico. Se a imagem original do tópico escolhida para criar a miniatura tiver menos de 1024px, esse tamanho de miniatura não será gerado e não estará presente como um elemento/entrada no array thumbnails. Como o array thumbnails está com um elemento faltando, a contagem do plugin ficará errada em uma unidade e retornará o tamanho de miniatura incorreto. Se a imagem original do tópico for menor que 800px de largura, então os tamanhos de 1024px e 800px não serão gerados, a contagem do plugin ficará errada em duas unidades e retornará uma miniatura ainda menor e incorreta :wink:

Parece que o plugin está percorrendo o array thumbnails até um elemento pré-determinado, quando deveria estar procurando por um elemento com um max_width específico que corresponda à configuração do site para resolução da lista de tópicos. Dessa forma, os tópicos podem ter arrays thumbnails de vários comprimentos em /latest.json e ainda retornar a largura de miniatura correta.

Isso explicaria por que alguns dos blocos de tópicos em nosso fórum estavam mostrando larguras de 50px, outros 100px, enquanto a maioria tinha a largura correta de 400px… os tópicos com larguras menores tinham imagens originais de menos de 1024px ou menos de 800px de largura.

Espero que faça sentido!

Além disso, você poderia adicionar um register_topic_thumbnail_size [300, 300]? Precisamos de uma largura de 284px para nossos blocos, e carregar miniaturas de 300px é melhor para nós do que carregar as de 400px. Idealmente, preferiríamos gerar exatamente a largura correta, mas provavelmente vou acabar migrando para o Componente de Tema quando você lançá-lo oficialmente, e aí adicionarei minha própria largura personalizada.

Obrigado pelo seu trabalho tanto no plugin quanto no componente! :clap:

Desculpe, ainda não entendi o problema.

Seu exemplo de resolução não é relevante, pois ele não gera miniaturas maiores que 800x800. A imagem de maior resolução no array é simplesmente a imagem original.

De qualquer forma, achei que sua preocupação fosse com as imagens de baixa resolução. Por que fornecer um exemplo relacionado a uma imagem tão grande? Você está dizendo que essa imagem grande está sendo exibida no nível 50x50?

Sim, claro que o comprimento do array de miniaturas varia. O algoritmo foi projetado para lidar com isso. Pode haver um bug, mas o fato de a lista de miniaturas ter tamanho variável já é uma premissa implícita do código atual.

Ele seleciona o nível de resolução da miniatura que você escolheu e o ajusta, se necessário. Por exemplo:

  • Se a tela for identificada como retina, ele avança uma seleção para que o resultado tenha maior resolução.

  • Se a resolução não estiver disponível, ele seleciona a próxima maior disponível.

Como disse, se apenas 50x50 estiver disponível, provavelmente devo suprimir as miniaturas completamente nos Tiles.

Se desejar adicionar resoluções personalizadas, faça um fork do plugin por enquanto. As miniaturas são intencionalmente o dobro umas das outras. Alterar isso apenas para você aumentaria o uso de espaço em disco para todos os usuários. Não acho que seja tão importante corresponder tão de perto aos originais: são apenas visualizações de miniatura. Dito isso, talvez haja um caso para ter uma resolução que corresponda mais de perto ao caso de uso comum dos Tiles. Deixe-me pensar sobre isso.

1 curtida

Sim, estamos vendo vários tópicos em que uma imagem grande é exibida no nível 50x50, mesmo que também estejam disponíveis os níveis 400x400 e 200x200. A única consistência que notei entre esses tópicos é que a imagem original carregada tinha menos de 1024px de largura ou menos de 800px de largura, o que resultava na ausência desses tamanhos no array de miniaturas. Isso me levou a acreditar que a forma como o plugin acessa as miniaturas está de alguma forma relacionada ao tamanho do array de miniaturas.

Compreendo totalmente sobre não adicionar tamanhos personalizados. Obrigado pela explicação detalhada :+1:

1 curtida

Ah, ok, essa é uma boa informação. Pode ser um bug. Vou dar uma olhada quando tiver chance.

2 curtidas

Nós definitivamente usaríamos isso, pois adoraria gerar exatamente um tamanho de miniatura para um tempo específico!

1 curtida

Você pode enviar por mensagem privada uma imagem completa que está causando o problema para que eu possa testá-la? Além disso, confirme o nível de resolução que você configurou e em qual dispositivo está vendo o problema.

2 curtidas

Feito! Obrigado @merefield por investigar isso

1 curtida

Não sei se é só comigo, mas as miniaturas no mobile com o componente de tema pararam de funcionar. Elas ainda estão funcionando com o componente de tema de miniaturas de tópicos, então parece ser um bug. Só para avisar, não vejo nada relevante no console.

2 curtidas

Não foi possível reproduzir, tudo certo nos últimos testes aprovados.

1 curtida

Ok pessoal, a janela de atualização estará encerrando neste fim de semana.

Acabei de fazer uma verificação rápida no Plugin e no TC e tudo está parecendo bem.

Por favor, evitem atualizar após domingo. Não me comprometo a corrigir mudanças que quebrem a compatibilidade até o próximo mês.

1 curtida

Após algumas verificações, parece haver um conflito com o plugin de eventos. Você consegue reproduzir isso?

2 curtidas

Elaborei mais detalhes via mensagem privada, mas, basicamente, parece haver um problema com os tamanhos de resolução personalizados do TLP. Se fizermos o upload de uma imagem com largura igual ou inferior a 1024px, a miniatura de 1024x1024 não é gerada. Se fizermos o upload de uma imagem com largura igual ou inferior a 800px, a miniatura de 800x800 não é gerada. Até aqui, o comportamento esperado.

O que não é esperado é que o nível de resolução 2 não carregue, na verdade, tamanhos de 400x400, mas sim o seguinte:

  1. Miniaturas de 1024x1024 para todos os tópicos que tiveram um upload de imagem original com largura superior a 1024px
  2. Miniaturas de 800x800 para todos os tópicos que tiveram um upload de imagem original com largura inferior a 1024px, mas superior a 800px
  3. Miniaturas de 400x400 para todos os tópicos que tiveram um upload de imagem original com largura inferior a 800px, mas superior a 400px
  4. Miniaturas de 100x100 para todos os tópicos que tiveram um upload de imagem original com largura inferior a 400px, mas superior a 100px

Eu pensava que o nível de resolução 2 seria apenas miniaturas de 400x400 para todos os tópicos.

1 curtida

David/Nick,

OK, revisei o algoritmo que estava usando para escolher a resolução e fiz melhorias.

Isso já foi implantado no TC e no Plugin.

NB: a nova escala de resolução vai de 0 a 6, onde 0 é a imagem original, 1 é a próxima resolução mais alta e 6 é a resolução mais baixa.

Por favor, atualizem seu plugin/TC e me avisem se isso resolve o comportamento.

@davidkingham, @internet_cookie, obrigado por trazerem isso à minha atenção.

(David, acho que esse é o problema que você está enfrentando, mas posso estar errado).

2 curtidas

Obrigado, Rob. Infelizmente, isso não resolveu meu problema; ainda há um conflito com o plugin de eventos. Você pode ver no meu site de produção que as miniaturas não funcionam no celular, mas com os eventos desativados no meu site de desenvolvimento, elas funcionam.

2 curtidas

Não consigo ver como eles já trabalharam juntos (incluindo o plugin TLP). Ambos estão sobrescrevendo o modelo de item da lista de tópicos móveis. Isso é um impeditivo. Por enquanto, você precisará escolher entre eles.

No futuro, posso experimentar uma versão apenas com saídas de CSS/plugin para evitar a sobrescrita de modelo, mas isso não é uma prioridade que precise pagar as contas no momento.

No entanto, a extensão da sobrescrita que o TLP exige para renderizar um Tile pode não ser possível apenas usando saídas.

1 curtida

Que pena, eu estava animado para finalmente ter os eventos de volta, haha! Achei curioso que o componente de tema Miniaturas de Tópico funcione com o plugin de eventos. Não estou questionando sua conclusão, apenas tentando ajudar. Parece que isso também estaria sobrescrevendo o modelo? Só para esclarecer, estou falando do plugin de eventos do Pavilion, não do da equipe do Discourse no plugin de calendário.

2 curtidas

Como o layout que ele usa não exige uma sobrescrita do modelo. No TLP, estou organizando mais elementos e alguns deles estão em divs aninhadas, o que não funcionará da mesma maneira: preciso contar com uma sobrescrita de modelo. Normalmente, isso não é tão arriscado, pois se trata de um nó folha.

2 curtidas