The fix only applies to posts that are published with the WordPress Block editor. It will fix old posts if the “Update Discourse Topic” button is clicked on WordPress. It will need to be done manually for each post unless someone writes a script to loop through old posts.
We fix the markdown engine to render <p></p>. Note that this does not render in the commonmark demo either.
Absolutely do not want to deviate from the spec here. I guess we fix pull hotlink images to allow for this by injecting 2 newlines for cases like this. I think it is rather rare though and sort of self inflicted.
@Arkshine we have been discussing this a lot internally. The key thing for us is to maintain the integrity of the content, so the newline solution will probably not happen.
But we will definitely be doing something - having the pull_hotlinked_images job destroy the images is not acceptable. Hope to have a solution soon
A workaround for this issue is to prevent Discourse from downloading the remote images. This can be done by adding the image domain to the disabled image download domains site setting. It is also possible to prevent Discourse from downloading all remote images by disabling the download remote images to local site setting. See Fix broken images for posts created by the WP Discourse and RSS plugins for details.
In our case, we can’t because we’re using the official topic thumbnail component which requires a local image. We solved the issue by adding newlines before any <img> in the content before topic being created with WP-Discourse. Not a solution for everyone but it works for us. A bit sad Discourse doesn’t support this legal usage.
But yes, if you are not tightened to a plugin/component and/or can’t fix the content before topic is created, this is for sure a reasonable workaround.
We are still planning to fix the issue. Unfortunately it is a problem quite deep in our markdown rendering system which is complex to fix. But we will get to it - sorry it is taking so long!
Desculpe pelos múltiplos posts neste tópico, mas o problema também afeta imagens em posts criados através do nosso plugin do Zendesk quando a configuração “sincronizar comentários do Zendesk” está habilitada. A dificuldade neste caso é que não é possível saber a origem das imagens com antecedência, portanto a solução alternativa de adicionar o src da imagem à configuração “domínios de download de imagem desativados” não funcionará.
Existe alguma maneira de evitar que imagens remotas sejam baixadas para o local se a tag da imagem estiver envolta em tags HTML?
Temor que isso esteja completamente fora de questão. Se fizéssemos algo assim, permitiríamos que terceiros rastreiem o uso em um fórum injetando um gif de rastreamento. O recurso de baixar imagens remotas é parte de uma funcionalidade de segurança.
Em vez disso, acho que precisamos de um sistema “mais inteligente” que funcione de maneira semelhante à forma como @tgxworld construiu nossos remapeadores de imagem há alguns anos, um que funcione de trás para frente a partir do HTML e garanta a estabilidade da alteração ao re-cozinhar. Mudança muito complexa, infelizmente.
Apenas pensando em voz alta, mas me pergunto se podemos contornar o problema complicado aqui (ou seja, a conversão de HTML para markdown). Para recapitular (apenas para ajudar a refletir sobre isso)
O Discourse suporta a importação de HTML para a criação de conteúdo de post (por exemplo, HTML do WP Discourse).
Em alguns contextos, o usuário espera que a integridade do HTML original seja mantida exatamente.
“Integridade” aqui tem pelo menos dois aspectos:
Como o conteúdo é renderizado, por exemplo, quebras de linha
Onde a mídia está hospedada, por exemplo, baixar imagens para o local para evitar imagens quebradas ou potencialmente por preocupações de segurança
A conversão de HTML para markdown potencialmente cria problemas para o primeiro tipo de integridade; no entanto, atualmente é necessário para garantir o segundo tipo de integridade.
Então, talvez uma maneira de resolver esse problema para certas postagens importadas seja armazenar o HTML importado diretamente como o conteúdo cozido do post, e o job pull_hotlinked_images suportaria o download de imagens em tal conteúdo sem converter img para markdown.