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

Rebake concluído. Que resultado bagunçado! :pensive:

Bem, agora sei por que essa opção foi desabilitada.

Estamos usando o WordPress e a primeira postagem contém HTML completo. O Discourse não tem problema em substituir o HTML de imagens por markdown, mas imagens em markdown não são renderizadas se estiverem cercadas por HTML (ou especificamente, você precisa de pelo menos uma linha em branco acima).

Tenho dois problemas:

  1. Algumas imagens não foram baixadas, provavelmente devido ao atributo srcset (mas tudo bem). As imagens são exibidas corretamente na primeira postagem, mas nenhuma miniatura foi gerada. Isso funcionava antes.

    Houve alguma mudança que quebrou algo no plugin, impedindo a geração de miniaturas em postagens que já contêm HTML de imagem? Acredito que já fiz o rebake três vezes e não ajudou. Existe outra maneira de forçar a regeneração da miniatura? Quero dizer, antes, mesmo com a opção desabilitada, uma miniatura era gerada com qualquer imagem ao criar um tópico ou até mesmo após editá-lo; esse comportamento não funciona mais.

  2. Como dito acima, algumas imagens em markdown não são renderizadas.

    Tentei ver se havia alguma API do plugin disponível antes da postagem ser processada, mas não encontrei nenhuma.

    Acredito que a única maneira é adicionar quebras de linha diretamente na mensagem bruta afetada no banco de dados, através do console do Rails, e fazer o rebake novamente.

    Atualmente, estou lutando (não sei Ruby) de alguma forma com base no código fonte do Discourse:
    Parece funcionar para um tópico. Ainda não executei para todos os tópicos. Existe uma maneira melhor/mais limpa de corrigir o problema sem fazer isso?

Post
  .where(post_number: 1)
  .where("raw LIKE '%upload://%'").each do |post|  
     post.raw.gsub!(/(!\[.*upload:\/\/.*\))/, "\n\n\\1") 
     post.save!(validate: false); 
     post.rebake! 
end

Qualquer ajuda é apreciada, obrigado!

1 curtida